※週1日メンターさんに見てもらっていますが、それ以外は独学でやっている、未経験からエンジニア転職を目指している者です。MVC設計の考え方は書籍で1周した程度の理解がありますが、マイグレーションの理解が浅く、初歩的ではありますがご質問させて頂きます。
【実現したいこと】
一度マイグレーションしたテーブルに、カラムを追加して保存したいです。そのために不要なテーブルは削除したいです(手取り早くbin/rails db:migrate:resetしたいのですが効きません)。
【今起こっていること】
元々は、recordテーブル・outputテーブル・practicesテーブル・tasksテーブル・userテーブルの合計5つのテーブルを入れてスタートしていました。
$ bin/rails db:migrate:status database: tt_manager_development Status Migration ID Migration Name -------------------------------------------------- up 20200519124615 Create records up 20200520234442 Create outputs up 20200521002119 Create practices up 20200521002400 Create tasks up 20200522090151 Devise create users
その中の、recordテーブルのカラム(:training_date :date)を追加するために、
AddColumnToRecordを実行しました。マイグレーションファイルは下記の通りです。
class AddColumnToRecord < ActiveRecord::Migration[5.2] def change add_column :records, :training_date :date end end
これでマイグレーションだ!と思いmigrateしたのですがエラーがました。
$ bin/rails db:migrate rails aborted! SyntaxError: /Users/user/Desktop/portfolio_rails/tt.manager/db/migrate/20200523133635_add_column_to_record.rb:3: syntax error, unexpected ':', expecting end ...lumn :records, :training_date :date ... ^ /Users/user/Desktop/portfolio_rails/tt.manager/bin/rails:9:in `<top (required)>' /Users/user/Desktop/portfolio_rails/tt.manager/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)
このエラーを理解しないまま、$ bin/rake db:rollback
してしまいました。
Status Migration ID Migration Name -------------------------------------------------- up 20200519124615 Create records up 20200520234442 Create outputs up 20200521002119 Create practices up 20200521002400 Create tasks down 20200522090151 Devise create users down 20200523133635 Add column to record
そしてこれを更にdb:migrateしたのですが前述と同じようにエラーが出てマイグレーションできませんでした。
そこでAdd column to record
を消すために、
DropAddColumnToRecordを実行しました。
class DropAddColumnToRecord < ActiveRecord::Migration[5.2] def change drop_table :AddColumnToRecords end def down create_table :records do |t| t.string :user_id t.text :learining_point t.date :training_date t.timestamps end end
が、結果は変わらず。
もういっそのこと全部リセットしたいのですが、何から手をつけたら良いでしょうか?
初学者で初歩的な質問で恐縮ですが、ご回答いただけたら幸いです。
必要な情報あれば追記致しますので、何卒ご協力のほど、よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/24 08:17
2020/05/24 08:53
2020/05/25 00:54