【问题标题】:Migration not working in Ruby On Rails迁移在 Ruby On Rails 中不起作用
【发布时间】:2017-03-23 14:41:13
【问题描述】:

出于某种原因,我的 Ruby on Rails 应用程序告诉我它无法运行迁移。我不确定如何解决这个问题。我偶然创建了一个没有信息的表。然后我尝试删除迁移文件和它创建的表。当我尝试运行迁移命令时,它给了我这个错误:

rails aborted!
Don't know how to build task 'db:migration' (see --tasks)
/usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/railties-5.0.0/lib/rails/commands/rake_proxy.rb:13:in `block in run_rake_task'
/usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/railties-5.0.0/lib/rails/commands/rake_proxy.rb:10:in `run_rake_task'
/usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/railties-5.0.0/lib/rails/commands/commands_tasks.rb:51:in `run_command!'
/usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/railties-5.0.0/lib/rails/commands.rb:18:in `<top (required)>'
/home/ubuntu/workspace/saasapp/bin/rails:9:in `require'
/home/ubuntu/workspace/saasapp/bin/rails:9:in `<top (required)>'
/usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/spring-1.7.2/lib/spring/client/rails.rb:28:in `load'
/usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/spring-1.7.2/lib/spring/client/rails.rb:28:in `call'
/usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/spring-1.7.2/lib/spring/client/command.rb:7:in `call'
/usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/spring-1.7.2/lib/spring/client.rb:30:in `run'
/usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/spring-1.7.2/bin/spring:49:in `<top (required)>'
/usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/spring-1.7.2/lib/spring/binstub.rb:11:in `load'
/usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/spring-1.7.2/lib/spring/binstub.rb:11:in `<top (required)>'
/home/ubuntu/workspace/saasapp/bin/spring:15:in `require'
/home/ubuntu/workspace/saasapp/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'
(See full trace by running task with --trace)

谁能帮我解决这个问题。我需要删除现有表,以便创建正确的表。它不会填充我的架构文件。

这是我在运行 rake db:migrate 时遇到的错误

rake db:migrate

== 20170322214259 CreateProfiles:迁移 =================================== -- change_table(:profiles) 耙中止! StandardError:发生错误,此迁移和所有后续迁移已取消:

SQLite3::SQLException: 无法添加默认值为 NULL 的 NOT NULL 列:ALTER TABLE "profiles" ADD "created_at" datetime NOT NULL /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/sqlite3-1.3.13/lib/sqlite3/database.rb:91:in initialize' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/sqlite3-1.3.13/lib/sqlite3/database.rb:91:innew' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/sqlite3-1.3.13/lib/sqlite3/database.rb:91:in prepare' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/sqlite3-1.3.13/lib/sqlite3/database.rb:137:inexecute' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/sqlite3_adapter.rb:232:in block in execute' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract_adapter.rb:566:inblock in log' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activesupport-5.0.0/lib/active_support/notifications/instrumenter.rb:21:in instrument' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract_adapter.rb:560:inlog' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/sqlite3_adapter.rb:232:in execute' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/schema_statements.rb:547:inadd_column' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/sqlite3_adapter.rb:373:in add_column' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/schema_statements.rb:1096:inadd_timestamps' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/schema_definitions.rb:525:in timestamps' /home/ubuntu/workspace/saasapp/db/migrate/20170322214259_create_profiles.rb:11:inblock in change' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/schema_statements.rb:443:in change_table' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:845:inblock in method_missing' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:814:in block in say_with_time' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:814:insay_with_time' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:834:in method_missing' /home/ubuntu/workspace/saasapp/db/migrate/20170322214259_create_profiles.rb:3:inchange' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:788:in exec_migration' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:772:inblock (2 级) in migrate' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:771:in block in migrate' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:398:inwith_connection' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:770:in migrate' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:950:inmigrate' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:1211:in block in execute_migration_in_transaction' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:1279:inblock in ddl_transaction' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/database_statements.rb:232:in block in transaction' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/transaction.rb:189:inwithin_new_transaction' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/database_statements.rb:232:in transaction' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/transactions.rb:211:intransaction' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:1279:in ddl_transaction' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:1210:inexecute_migration_in_transaction' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:1183:in block in migrate_without_lock' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:1182:ineach' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:1182:in migrate_without_lock' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:1133:inmigrate' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:1005:in up' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:983:inmigrate' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/tasks/database_tasks.rb:161:in migrate' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/railties/databases.rake:58:inblock(2级)在' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/rake-12.0.0/exe/rake:27:in <top (required)>' /usr/local/rvm/gems/ruby-2.3.0@saasapp/bin/ruby_executable_hooks:15:ineval' /usr/local/rvm/gems/ruby-2.3.0@saasapp/bin/ruby_executable_hooks:15:in <main>' ActiveRecord::StatementInvalid: SQLite3::SQLException: Cannot add a NOT NULL column with default value NULL: ALTER TABLE "profiles" ADD "created_at" datetime NOT NULL /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/sqlite3-1.3.13/lib/sqlite3/database.rb:91:ininitialize' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/sqlite3-1.3.13/lib/sqlite3/database.rb:91:in new' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/sqlite3-1.3.13/lib/sqlite3/database.rb:91:inprepare' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/sqlite3-1.3.13/lib/sqlite3/database.rb:137:in execute' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/sqlite3_adapter.rb:232:inblock 在执行' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract_adapter.rb:566:in block in log' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activesupport-5.0.0/lib/active_support/notifications/instrumenter.rb:21:ininstrument' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract_adapter.rb:560:in log' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/sqlite3_adapter.rb:232:inexecute' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/schema_statements.rb:547:in add_column' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/sqlite3_adapter.rb:373:inadd_column' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/schema_statements.rb:1096:in add_timestamps' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/schema_definitions.rb:525:intimestamps' /home/ubuntu/workspace/saasapp/db/migrate/20170322214259_create_profiles.rb:11:in block in change' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/schema_statements.rb:443:inchange_table' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:845:in block in method_missing' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:814:inblock in say_with_time' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:814:in say_with_time' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:834:inmethod_missing' /home/ubuntu/workspace/saasapp/db/migrate/20170322214259_create_profiles.rb:3:in change' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:788:inexec_migration' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:772:in block (2 levels) in migrate' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:771:inblock in migrate' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:398:in with_connection' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:770:inmigrate' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:950:in migrate' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:1211:inblock in execute_migration_in_transaction' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:1279:in block in ddl_transaction' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/database_statements.rb:232:inblock in transaction' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/transaction.rb:189:in within_new_transaction' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/database_statements.rb:232:intransaction' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/transactions.rb:211:in transaction' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:1279:inddl_transaction' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:1210:in execute_migration_in_transaction' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:1183:inblock in migrate_without_lock' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:1182:in each' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:1182:inmigrate_without_lock' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:1133:in migrate' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:1005:inup' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:983:in migrate' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/tasks/database_tasks.rb:161:inmigrate' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/railties/databases.rake:58:in block (2 levels) in <top (required)>' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/rake-12.0.0/exe/rake:27:in' /usr/local/rvm/gems/ruby-2.3.0@saasapp/bin/ruby_executable_hooks:15:in eval' /usr/local/rvm/gems/ruby-2.3.0@saasapp/bin/ruby_executable_hooks:15:in' SQLite3::SQLException:无法添加默认值为 NULL 的 NOT NULL 列 /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/sqlite3-1.3.13/lib/sqlite3/database.rb:91:in initialize' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/sqlite3-1.3.13/lib/sqlite3/database.rb:91:innew' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/sqlite3-1.3.13/lib/sqlite3/database.rb:91:in prepare' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/sqlite3-1.3.13/lib/sqlite3/database.rb:137:inexecute' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/sqlite3_adapter.rb:232:in block in execute' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract_adapter.rb:566:inblock in log' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activesupport-5.0.0/lib/active_support/notifications/instrumenter.rb:21:in instrument' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract_adapter.rb:560:inlog' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/sqlite3_adapter.rb:232:in execute' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/schema_statements.rb:547:inadd_column' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/sqlite3_adapter.rb:373:in add_column' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/schema_statements.rb:1096:inadd_timestamps' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/schema_definitions.rb:525:in timestamps' /home/ubuntu/workspace/saasapp/db/migrate/20170322214259_create_profiles.rb:11:inblock in change' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/schema_statements.rb:443:in change_table' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:845:inblock in method_missing' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:814:in block in say_with_time' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:814:insay_with_time' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:834:in method_missing' /home/ubuntu/workspace/saasapp/db/migrate/20170322214259_create_profiles.rb:3:inchange' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:788:in exec_migration' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:772:inblock (2 个级别) in migrate' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:771:in block in migrate' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:398:inwith_connection' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:770:in migrate' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:950:inmigrate' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:1211:in block in execute_migration_in_transaction' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:1279:inblock in ddl_transaction' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/database_statements.rb:232:in block in transaction' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/transaction.rb:189:inwithin_new_transaction' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/database_statements.rb:232:in transaction' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/transactions.rb:211:intransaction' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:1279:in ddl_transaction' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:1210:inexecute_migration_in_transaction' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:1183:in block in migrate_without_lock' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:1182:ineach' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:1182:in migrate_without_lock' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:1133:inmigrate' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:1005:in up' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:983:inmigrate' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/tasks/database_tasks.rb:161:in migrate' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/activerecord-5.0.0/lib/active_record/railties/databases.rake:58:inblock(2级)在' /usr/local/rvm/gems/ruby-2.3.0@saasapp/gems/rake-12.0.0/exe/rake:27:in <top (required)>' /usr/local/rvm/gems/ruby-2.3.0@saasapp/bin/ruby_executable_hooks:15:ineval' /usr/local/rvm/gems/ruby-2.3.0@saasapp/bin/ruby_executable_hooks:15:in `' 任务:TOP => db:migrate (通过使用 --trace 运行任务查看完整跟踪)

【问题讨论】:

  • 试试rake db:migrate而不是rake db:migration
  • 当您运行迁移并想要删除它时,您还应该运行rake db:rollback,而不是手动删除迁移文件并将表放入数据库中。回滚后,您可以根据需要删除该文件。 Rails 在您的数据库中使用schema_migrations 表来跟踪已运行或未运行的迁移。如果您不回滚表,则认为迁移已经运行。 stackoverflow.com/a/12057445/3366016 不推荐,但您也可以进入数据库并弄乱 schema_migrations 表,但同样不推荐。

标签: ruby-on-rails


【解决方案1】:

除了我建议您使用rake db:migrate 而不是rake db:migration 的评论:

如果您发现自己在生成模型/迁移时犯了错误,我还建议您查看 rake db:rollback

【讨论】:

  • 我试过了。运行 db:rollback 命令后,我删除了迁移文件。然后我生成一个新的迁移文件并用正确的信息填充它,以便它创建一个包含正确列的表。保存该文件后,我尝试运行 rails db:migrate 并得到“无法创建表,已创建配置文件表”。错误。
  • 运行db:rollback后,不要删除迁移文件,生成新的迁移文件。只需编辑您之前创建的迁移文件。根据您的错误,您现在可能有多个迁移文件正在尝试创建 profiles 表。确保您只有一个具有 create_table :profiles 的迁移。
  • 如何去掉多余的迁移文件?这样它就只能看到一个文件。
  • 我没有做任何事情来解决这个问题。我已经破坏了迁移。我使用了回滚命令。我什至使用 db:migrate:status 找到了该文件并在那里销毁了丢失的文件。我似乎无法修复我的迁移。
【解决方案2】:

我相信您使用的是迁移而不是迁移 rake db:migrate

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-09
    • 2019-12-24
    • 1970-01-01
    • 2013-11-03
    相关资源
    最近更新 更多