rails db:migrate をしたところ、以下のようなエラーが発生しました。
rails aborted! StandardError: An error has occurred, this and all later migrations canceled: SQLite3::SQLException: Cannot add a NOT NULL column with default value NULL: ALTER TABLE "tasks" ADD "user_id" integer NOT NULL /home/ren/practice/TASKMAN/db/migrate/20200329105007_add_user_id_to_tasks.rb:4:in `up' /home/ren/practice/TASKMAN/bin/rails:9:in `<top (required)>' /home/ren/practice/TASKMAN/bin/spring:15:in `<top (required)>' bin/rails:3:in `load' bin/rails:3:in `<main>' Caused by: ActiveRecord::StatementInvalid: SQLite3::SQLException: Cannot add a NOT NULL column with default value NULL: ALTER TABLE "tasks" ADD "user_id" integer NOT NULL /home/ren/practice/TASKMAN/db/migrate/20200329105007_add_user_id_to_tasks.rb:4:in `up' /home/ren/practice/TASKMAN/bin/rails:9:in `<top (required)>' /home/ren/practice/TASKMAN/bin/spring:15:in `<top (required)>' bin/rails:3:in `load' bin/rails:3:in `<main>' Caused by: SQLite3::SQLException: Cannot add a NOT NULL column with default value NULL /home/ren/practice/TASKMAN/db/migrate/20200329105007_add_user_id_to_tasks.rb:4:in `up' /home/ren/practice/TASKMAN/bin/rails:9:in `<top (required)>' /home/ren/practice/TASKMAN/bin/spring:15:in `<top (required)>' bin/rails:3:in `load' bin/rails:3:in `<main>' Tasks: TOP => db:migrate (See full trace by running task with --trace)
マイグレーションファイルは以下のようになります。
class AddUserIdToTasks < ActiveRecord::Migration[5.2] def up execute 'DELETE FROM tasks;' add_reference :tasks, :user, null: false, index: true end def down remove_reference :tasks, :user, index: true end end
このコードは書籍を見ながら写したものなのですが、自分のミスで書籍の最初にDBはpostgresqlを使用するように書いてあったのを見落とし、sqliteをインストールしてずっと使っていました。
このことはこのエラーに関係あるでしょうか。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/29 12:44