aboutsummaryrefslogtreecommitdiffstats
path: root/activestorage
diff options
context:
space:
mode:
authorEugeniu Tambur <eugeniu.rtj@gmail.com>2019-03-15 12:54:42 +0100
committerEugeniu Tambur <eugeniu.rtj@gmail.com>2019-03-15 12:54:42 +0100
commit417c625ab210ecfd6bb555fbec891fb9c3a40736 (patch)
tree91f6b65c748b7515247c7dc9932c34fdfc36b03a /activestorage
parent1cdc6c6576afe9a9fa67a6b313080a7dc62188d9 (diff)
downloadrails-417c625ab210ecfd6bb555fbec891fb9c3a40736.tar.gz
rails-417c625ab210ecfd6bb555fbec891fb9c3a40736.tar.bz2
rails-417c625ab210ecfd6bb555fbec891fb9c3a40736.zip
Fix for migration active_storage migration
*ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: relation "active_storage_attachments" does not exist* Updating to rails 6.0.0.beta3 if the command rake app:update is used a new migration file is generated: ```ruby # db/migrate/add_foreign_key_constraint_to_active_storage_attachments_for_blob_id.active_storage.rb class AddForeignKeyConstraintToActiveStorageAttachmentsForBlobId < ActiveRecord::Migration[6.0] def up unless foreign_key_exists?(:active_storage_attachments, column: :blob_id) add_foreign_key :active_storage_attachments, :active_storage_blobs, column: :blob_id end end end ``` **If the project does not have previously installed active storage** this mgiration causes an error: ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: relation "active_storage_attachments" does not exist **Error output:** PG::UndefinedTable: ERROR: relation "active_storage_attachments" does not exist activerecord-6.0.0.beta3/lib/active_record/connection_adapters/postgresql/database_statements.rb:90:in `async_exec' activerecord-6.0.0.beta3/lib/active_record/connection_adapters/postgresql/database_statements.rb:90:in `block (2 levels) in execute' activesupport-6.0.0.beta3/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads' activesupport-6.0.0.beta3/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares' activesupport-6.0.0.beta3/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads' activerecord-6.0.0.beta3/lib/active_record/connection_adapters/postgresql/database_statements.rb:89:in `block in execute' activerecord-6.0.0.beta3/lib/active_record/connection_adapters/abstract_adapter.rb:643:in `block (2 levels) in log' activerecord-6.0.0.beta3/lib/active_record/connection_adapters/abstract_adapter.rb:642:in `block in log' activesupport-6.0.0.beta3/lib/active_support/notifications/instrumenter.rb:23:in `instrument' activerecord-6.0.0.beta3/lib/active_record/connection_adapters/abstract_adapter.rb:633:in `log' activerecord-6.0.0.beta3/lib/active_record/connection_adapters/postgresql/database_statements.rb:88:in `execute' activerecord-6.0.0.beta3/lib/active_record/connection_adapters/abstract/schema_statements.rb:977:in `add_foreign_key' activerecord-6.0.0.beta3/lib/active_record/migration.rb:875:in `block in method_missing' activerecord-6.0.0.beta3/lib/active_record/migration.rb:843:in `block in say_with_time' activerecord-6.0.0.beta3/lib/active_record/migration.rb:843:in `say_with_time' activerecord-6.0.0.beta3/lib/active_record/migration.rb:864:in `method_missing' /db/migrate/20190315102607_add_foreign_key_constraint_to_active_storage_attachments_for_blob_id.active_storage.rb:5:in `up' activerecord-6.0.0.beta3/lib/active_record/migration.rb:816:in `exec_migration' activerecord-6.0.0.beta3/lib/active_record/migration.rb:797:in `block (2 levels) in migrate' activerecord-6.0.0.beta3/lib/active_record/migration.rb:796:in `block in migrate' activerecord-6.0.0.beta3/lib/active_record/connection_adapters/abstract/connection_pool.rb:416:in `with_connection' activerecord-6.0.0.beta3/lib/active_record/migration.rb:795:in `migrate' activerecord-6.0.0.beta3/lib/active_record/migration.rb:985:in `migrate' activerecord-6.0.0.beta3/lib/active_record/migration.rb:1293:in `block in execute_migration_in_transaction' activerecord-6.0.0.beta3/lib/active_record/migration.rb:1344:in `block in ddl_transaction' activerecord-6.0.0.beta3/lib/active_record/connection_adapters/abstract/database_statements.rb:265:in `block in transaction' activerecord-6.0.0.beta3/lib/active_record/connection_adapters/abstract/transaction.rb:272:in `block in within_new_transaction' activerecord-6.0.0.beta3/lib/active_record/connection_adapters/abstract/transaction.rb:270:in `within_new_transaction' activerecord-6.0.0.beta3/lib/active_record/connection_adapters/abstract/database_statements.rb:265:in `transaction' activerecord-6.0.0.beta3/lib/active_record/transactions.rb:212:in `transaction' activerecord-6.0.0.beta3/lib/active_record/migration.rb:1344:in `ddl_transaction' activerecord-6.0.0.beta3/lib/active_record/migration.rb:1292:in `execute_migration_in_transaction' activerecord-6.0.0.beta3/lib/active_record/migration.rb:1264:in `block in migrate_without_lock' activerecord-6.0.0.beta3/lib/active_record/migration.rb:1263:in `each' activerecord-6.0.0.beta3/lib/active_record/migration.rb:1263:in `migrate_without_lock' activerecord-6.0.0.beta3/lib/active_record/migration.rb:1211:in `block in migrate' activerecord-6.0.0.beta3/lib/active_record/migration.rb:1364:in `with_advisory_lock' activerecord-6.0.0.beta3/lib/active_record/migration.rb:1211:in `migrate' activerecord-6.0.0.beta3/lib/active_record/migration.rb:1044:in `up' activerecord-6.0.0.beta3/lib/active_record/migration.rb:1019:in `migrate' activerecord-6.0.0.beta3/lib/active_record/tasks/database_tasks.rb:191:in `migrate' activerecord-6.0.0.beta3/lib/active_record/railties/databases.rake:78:in `block (3 levels) in <main>' activerecord-6.0.0.beta3/lib/active_record/railties/databases.rake:76:in `each' activerecord-6.0.0.beta3/lib/active_record/railties/databases.rake:76:in `block (2 levels) in <main>' railties-6.0.0.beta3/lib/rails/commands/rake/rake_command.rb:23:in `block in perform' railties-6.0.0.beta3/lib/rails/commands/rake/rake_command.rb:20:in `perform' railties-6.0.0.beta3/lib/rails/command.rb:48:in `invoke' railties-6.0.0.beta3/lib/rails/commands.rb:18:in `<main>' bootsnap-1.4.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require' bootsnap-1.4.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `block in require_with_bootsnap_lfi' bootsnap-1.4.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:83:in `register' bootsnap-1.4.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:20:in `require_with_bootsnap_lfi' bootsnap-1.4.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:29:in `require' activesupport-6.0.0.beta3/lib/active_support/dependencies.rb:297:in `block in require' activesupport-6.0.0.beta3/lib/active_support/dependencies.rb:263:in `load_dependency' activesupport-6.0.0.beta3/lib/active_support/dependencies.rb:297:in `require' bin/rails:4:in `<main>'
Diffstat (limited to 'activestorage')
-rw-r--r--activestorage/db/update_migrate/20180723000244_add_foreign_key_constraint_to_active_storage_attachments_for_blob_id.rb4
1 files changed, 3 insertions, 1 deletions
diff --git a/activestorage/db/update_migrate/20180723000244_add_foreign_key_constraint_to_active_storage_attachments_for_blob_id.rb b/activestorage/db/update_migrate/20180723000244_add_foreign_key_constraint_to_active_storage_attachments_for_blob_id.rb
index 6830203cd6..844577d9c8 100644
--- a/activestorage/db/update_migrate/20180723000244_add_foreign_key_constraint_to_active_storage_attachments_for_blob_id.rb
+++ b/activestorage/db/update_migrate/20180723000244_add_foreign_key_constraint_to_active_storage_attachments_for_blob_id.rb
@@ -1,6 +1,8 @@
class AddForeignKeyConstraintToActiveStorageAttachmentsForBlobId < ActiveRecord::Migration[6.0]
def up
- unless foreign_key_exists?(:active_storage_attachments, column: :blob_id)
+ return if foreign_key_exists?(:active_storage_attachments, column: :blob_id)
+
+ if table_exists?(:active_storage_attachments) && table_exists?(:active_storage_blobs)
add_foreign_key :active_storage_attachments, :active_storage_blobs, column: :blob_id
end
end