2017-03-23 11 views
-1

Ruby on Railsアプリケーションが何らかの理由で移行を実行できないと伝えています。私はこれを解決する方法が不明です。偶然、情報のないテーブルを作った。私はその後、作成した移行ファイルとテーブルを削除しようとしました。私は移行コマンドを実行しようとすると、それは私に、このエラーを与える:Ruby on Railsで移行が機能しない

rails aborted! 
Don't know how to build task 'db:migration' (see --tasks) 
/usr/local/rvm/gems/[email protected]/gems/railties-5.0.0/lib/rails/commands/rake_proxy.rb:13:in `block in run_rake_task' 
/usr/local/rvm/gems/[email protected]/gems/railties-5.0.0/lib/rails/commands/rake_proxy.rb:10:in `run_rake_task' 
/usr/local/rvm/gems/[email protected]/gems/railties-5.0.0/lib/rails/commands/commands_tasks.rb:51:in `run_command!' 
/usr/local/rvm/gems/[email protected]/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/[email protected]/gems/spring-1.7.2/lib/spring/client/rails.rb:28:in `load' 
/usr/local/rvm/gems/[email protected]/gems/spring-1.7.2/lib/spring/client/rails.rb:28:in `call' 
/usr/local/rvm/gems/[email protected]/gems/spring-1.7.2/lib/spring/client/command.rb:7:in `call' 
/usr/local/rvm/gems/[email protected]/gems/spring-1.7.2/lib/spring/client.rb:30:in `run' 
/usr/local/rvm/gems/[email protected]/gems/spring-1.7.2/bin/spring:49:in `<top (required)>' 
/usr/local/rvm/gems/[email protected]/gems/spring-1.7.2/lib/spring/binstub.rb:11:in `load' 
/usr/local/rvm/gems/[email protected]/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 

== 20170322214259 CreateProfiles移行:移行を=================== ================ - change_table(:profiles) レーキが中止されました! はStandardError:エラーが発生している、これとキャンセルすべて以降の移行:

するSQLite3 :: SQLExceptionがデフォルト値のNULLとNOT NULL列を追加することはできません: は/ usr "のcreated_at" を追加日時、NOT NULL TABLE "プロファイル" ALTER /local/rvm/gems/[email protected]/gems/sqlite3-1.3.13/lib/sqlite3/database.rb:91:in initialize' /usr/local/rvm/gems/[email protected]/gems/sqlite3-1.3.13/lib/sqlite3/database.rb:91:in新しい ' /usr/local/rvm/gems/ruby-2.3 .0 @ saasapp/gems/sqlite3-1.3.13/lib/sqlite3/database.rb:91:prepare' /usr/local/rvm/gems/[email protected]/gems/sqlite3-1.3.13/lib/sqlite3/database.rb:137:in実行 ' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0 .0/lib/active_record/connection_adapters/sqlite3_adapter.rb:232:in block in execute' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract_adapter.rb:566:inログのブロック ' /usr/local/rvm/gems/[email protected]/gems/activesupport-5.0.0/lib/active_support /通知イオン/ instrumenter.rb:21:in instrument' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract_adapter.rb:560:inログ ' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/connection_adapters/sqlite3_adapter.rb:232: in execute' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/schema_statements.rb:547:in add_column ' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/connection_adapters/sqlite3_adapter.rb:373:in add_column' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/schema_statements.rb:1096:in add_timestamps' /usr /ローカル/rvm/gems/[email protected]/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:inブロックが変更中 ' /usr/local/rvm// usr/local/rvm/gems/ruby​​- [email protected]/gems/activerecord -5.0.0/lib/active_record/migration.rb:814:block in say_with_time' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:814:in say_with_time ' /usr/local/rvm/gems/[email protected]/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:in変更 ' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:788:in exec_migration' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:772:inブロック(2レベル)) ' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:771:in block in migrate' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:398:in with_connection' /usr/local /rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:770:in migrate' /usr/local/rvm/gems/[email protected]/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:block in execute_migration_in_transaction' /usr/local/rvm/gems/[email protected]sapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:1279:inブロックddl_transaction '/usr/local/bin/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/database_statements.rb:232:transaction' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/transactions.rb:211:inトランザクション ' /usr/local/rvm/gems/ruby​​- [email protected]/gems/activerecord-5.0.0/lib/active_record/migration。RB:1279:ddl_transaction' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:1210:in execute_migration_in_transactionの ' block in migrate_without_lock' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:1182:in /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:1183:in各' /usr/local/rvm/gems/ruby​​-2.3.2/usr/local/rvm/gems/ruby​​-local/rvm/gems/ruby​​- [email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:1005:up' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:983:in移行 ' /usr/local/rvm/gems/[email protected]/gems/activerecord- 5.0/lib/active_record/tasks/database_tasks.rb:161:のブロック(2レベル) ' /usr/local/rvm/gems/[email protected]/gems/rake-12.0.0/exe/rake:27:in <top (required)>' /usr/local/rvm/gems/[email protected]/bin/ruby_executable_hooks:15:in eval ' /usr/local/rvm/gems/[email protected]/bin/ruby_ executable_hooks:15:<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/[email protected]/gems/sqlite3-1.3.13/lib/sqlite3/database.rb:91:inで初期化 ' /usr/local/rvm/gems/[email protected]/gems/sqlite3-1.3.13/lib/sqlite3/database.rb:91:in new' /usr/local/rvm/gems/[email protected]/gems/sqlite3-1.3.13/lib/sqlite3/database.rb:91:in' /usr/local/rvm/gems /[email protected]/gems/sqlite3-1.3.13/lib/sqlite3/database.rb:137:execute' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/connection_adapters/sqlite3_adapter.rb:232:inブロック実行中 ' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract_adapter.rb:566:block in log' /usr/local/rvm/gems/[email protected]/gems/activesupport-5.0.0/lib/active_support/notifications/instrumenter.rb:21:in楽器 ' /usr/local/rvm/gems/[email protected]/ gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract_adapter.rb:560:log' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/connection_adapters/sqlite3_adapter.rb:232:inで実行 ' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/ lib/active_record/connection_adapters/abstract/schema_statements.rb:547:in add_column' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/connection_adapters/sqlite3_adapter.rb:373:in add_column ' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/schema_statements.rb:1096:in add_timestamps' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/schema_definitions.rb:525:inタイムスタンプ ' /home/ubuntu/workspace/saasapp/db/migrate/20170322214259_create_profiles.rb:11:block in change' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/schema_statements.rb:443:in change_table ' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration。 rb:845:block in method_missing' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:814:in say_with_timeのブロック ' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:814:in say_with_time' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:834:in method_missing' change' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:788:in exec_migration」 /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/ /home/ubuntu/workspace/saasapp/db/migrate/20170322214259_create_profiles.rb:3:in lib/active_record/migration.rb:772:in block (2 levels) in migrate' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:771:in移行中のブロック ' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/ connection_pool.rb:398:in with_connection' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:770:in移行 ' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:950:in migrate' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:1211:inブロック内execute_migration_in_transaction ' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:1279:in block in ddl_transaction' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/database_statements.rb:232:inトランザクションのブロック' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/transaction.rb:189:within_new_transaction' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/database_statements.rb:232:inトランザクション ' /usr/local/rvm/gems/ruby​​- [email protected]/gems/activerecord-5.0.0/lib/active_レコード/トランザクション.rb:211:in transaction' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:1279:in ddl_transaction ' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:1210:in execute_migration_in_transaction' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:1183:in migrate_without_lockでブロック ' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:1182:in each' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:1182:in migrate_without_lock' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:1133:migrate' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:1005:in up ' /usr/local/rvm/gems/[email protected] saasapp/gems/activerecord-5.0.0/lib/active_record/migration.rb:983:migrate' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/tasks/database_tasks.rb:161:in移行 ' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/ lib/active_record/railties/databasesにあります。rake:58:block (2 levels) in <top (required)>' /usr/local/rvm/gems/[email protected]/gems/rake-12.0.0/exe/rake:27:in ' /usr/local/rvm/gems/[email protected]/bin/ruby_executable_hooks:15:in eval' /usr/local/rvm/gems/[email protected]/bin/ruby_executable_hooks:15:in SQLite3 :: SQLException:デフォルト値NULLのNOT NULL列を追加できません /usr/local/rvm/gems/[email protected]/gems/sqlite3-1.3.13/lib/sqlite3/database.rb:91:in initialize' /usr/local/rvm/gems/[email protected]/gems/sqlite3-1.3.13/lib/sqlite3/database.rb:91:in新しい ' /usr/local/rvm/gems/[email protected]/gems/sqlite3-1.3.13/lib/sqlite3/database.rb:91:prepare' /usr/local/rvm/gems/[email protected]/gems/sqlite3-1.3.13/lib/sqlite3/database.rb:137:in実行 ' /usr/local/rvm/gems/[email protected]/gems/ activerecord-5.0.0/lib/active_record/connection_adapters/sqlite3_adapter.rb:232:block in execute' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract_adapter.rb:566:inブロック内ログ ' /usr/local/rvm/gems/[email protected]/gems/activesupport-5.0.0/ lib/active_support/notifications/instrumenter.rb:21:instrument' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract_adapter.rb:560:inログ '/usr/local/rvm/lib/active_record/connection_adapters/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/connection_adapters/sqlite3_adapter.rb:373:add_column' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/schema_statements.rb:1096:in add_timestamps ' /usr/local/rvm/gems/[email protected] saasapp/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/schema_definitions.rb:525:ブロックが変更中 ' /usr/local/rvm/gems/[email protected]/gems/ activerecord-5.0.0/lib/active_record/connection_adapters/abstract/schema_statements.rb:443:change_table' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:845:inのブロックmethod_missing ' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0。 0/lib/active_record/migration.rb:814:block in say_with_time' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:814:in say_with_ti ' /usr/local/rvm/me/gems/ruby​​[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:788:exec_migration' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:772:inブロック内でブロック(2レベル) ' /usr/local/rvm/gems/ruby​​- [email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:771:block in migrate' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:398:in with_connection ' /usr/local/rvm/gems/[email protected]/gems/activerecord- 5.0.0/lib/active_record/migration.rb:770:migrate' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:950:in移行 ' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration。 rb:1211:in block in execute_migration_in_transaction' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:1279:in ddl_transactionのブロック ' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/a ctive_record/connection_adapters/abstract/database_statements.rb:232:block in transaction' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/transaction.rb:189:in within_new_transaction ' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/connection_adapters/abstract/ database_statements.rb:232:transaction' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/transactions.rb:211:inトランザクション ' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:1279:in ddl_transaction' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:1210:in execute_migration_in_transaction' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:1183:in block in migrate_without_lock' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:1182:in each ' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:1182:migrate_without_lock' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:1133:in移行 ' /usr/local/rvm/gems/[email protected]/gems/ activerecord-5.0.0/lib/active_record/migration.r b:1005:in up' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/migration.rb:983:in移行 ' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/tasks/database_tasks.rb:161:in migrate' /usr/local/rvm/gems/[email protected]/gems/activerecord-5.0.0/lib/active_record/railties/databases.rake:58:inブロック( 2レベル) ' /usr/local/rvm/gems/[email protected]/gems/rake-12.0.0/exe/rake:27:in <top (required)>' /usr/local/rvm/gems/[email protected]/bin/ruby_executable_hooks:15:in eval' /usr/local/rvm/gems /ruby-2.3。saasapp/binに/ ruby​​_executable_hooks @ 0:15: `」 タスク:TOP => DB:移行 (--traceでタスクを実行することにより、完全なトレースを参照してください)

+2

'rake db:migration'の代わりに' rake db:migrate'を実行してください – jvillian

+0

マイグレーションを実行して削除したい場合、マイグレーションファイルを削除してテーブルを削除するのではなく、 'rake db:rollback'も実行する必要がありますDBに手動で入力します。いったんロールバックすると、必要に応じてファイルを削除できます。 RailsはあなたのDBに 'schema_migrations'テーブルを使って、どのマイグレーションが実行されたかを追跡します。テーブルをロールバックしないと、移行はすでに実行されていると考えられます。 http://stackoverflow.com/a/12057445/3366016推奨されていませんが、schema_migrationsテーブルを使用してDBに入り混乱させることもできますが、推奨しません。 – user3366016

答えて

0

私はまた、あなたのモデル/移行を発生しながら、あなたがミスを犯しました見つけた場合、あなたは熊手db:rollbackに見てください。

+0

私はそれを試みました。 db:rollbackコマンドを実行すると、移行ファイルが削除されます。新しい移行ファイルを生成し、正しい情報を入力して、正しい列の表を作成します。そのファイルを保存した後、rails db:migrateを実行しようとしましたが、「テーブルを作成できません。プロファイルテーブルはすでに作成されています」エラー。 –

+0

'db:rollback'を実行した後で、マイグレーションファイルを削除せずに新しいマイグレーションファイルを生成してください。これまでに作成した移行ファイルを編集するだけです。あなたのエラーから、 'profiles'テーブルを作成しようとしている複数の移行ファイルがある可能性があります。 'create_table:profiles'を持つ移行が1つだけであることを確認してください。 – jvillian

+0

余分な移行ファイルを取り除くにはどうすればよいですか?そのため、1つのファイルしか表示されません。 –

0

私はあなたの代わりに移行 の移行を使用していたと考えていますあなたの代わりにrake db:migrationrake db:migrateを使用示唆私のコメントに加えてrake db:migrate

関連する問題