konchanxxx / menta

MENTAのタスク管理用リポジトリ
0 stars 0 forks source link

スキーマの修正を行いたい #30

Closed sumura80 closed 5 years ago

sumura80 commented 5 years ago

概要

Schema.rbのカラムと Rails c から入った時のカラムが異なっているので、修正したい。 Seedのデータを入れる時にエラーが出ました。調査するとカラムが異なっていました。 これは、ほかのブランチでテストカラムを作っていたのですが、マスターに一部入ってしまったようです。    master_branch

実現したいこと

Masterに残りのカラムを保存したい。

解決するために行ったこと

Schemaに残りのカラムを入れるため、下記のマイグレーションを投入しましたが、duplicateというエラーが出てしまいました。  

rails g migration add_precautions_columns_to_categories blurb:text image:string precaution_red:text precaution_red:text precaution_large:text

  この画像の状況で、どのようにすれば、適切にマイグレーションを行うことができるか教えていただけませんでしょうか? 宜しくお願いいたします。:bow:

konchanxxx commented 5 years ago
$ bundle exec rake db:migrate:reset db:seed

とかでいけると思います:bow:

sumura80 commented 5 years ago

早速のご回答ありがとうございます。:bow: Schema.rbにカラムを追加するには、どのようにすればよろしいでしょうか? 下記のコードでは、name以外を登録できなくなっております。:sob:


rails g migration add_precautions_columns_to_categories blurb:text image:string precaution_red:text precaution_red:text precaution_large:text
````
konchanxxx commented 5 years ago

duplicateというエラーが出てしまいました。

すいません。エラー出力も記載して頂きたいです:bow:

sumura80 commented 5 years ago

大変失礼いたしました。:bow: 💦 下記がエラーに至るまでのプロセスです。

cloneで環境をローカルに持ってきて、rails db:seed でテストデータを投入しようとしました。

rails db:seed

rails aborted!
NoMethodError: undefined method `blurb' for #<Category:0x00007fc659ae92d8>
/Users/med_plus_bs4_dev/med_plus_bs4_updated_master/db/seeds.rb:13:in `<top (required)>'
/Users/med_plus_bs4_dev/med_plus_bs4_updated_master/bin/rails:9:in `require'
/Users/med_plus_bs4_dev/med_plus_bs4_updated_master/bin/rails:9:in `<top (required)>'
/Users/med_plus_bs4_dev/med_plus_bs4_updated_master/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'
Tasks: TOP => db:seed
(See full trace by running task with --trace)

seedで blurbカラム 出ていなかったので、カラムに追加するためマイグレーションファイルを作成しました。

rails g migration add_precautions_columns_to_categories blurb:text image:string precaution_red:text precaution_red:text precaution_large:text

Running via Spring preloader in process 4541
invoke  active_record
create    db/migrate/20190216020345_add_precautions_columns_to_categories.rb

   その後rails db:migrate時にエラーが出ました。

 rails db:migrate
== 20190216020345 AddPrecautionsColumnsToCategories: migrating ================
-- add_column(:categories, :blurb, :text)
   -> 0.0009s
-- add_column(:categories, :image, :string)
   -> 0.0002s
-- add_column(:categories, :precaution_red, :text)
   -> 0.0003s
-- add_column(:categories, :precaution_red, :text)
rails aborted!
StandardError: An error has occurred, this and all later migrations canceled:

SQLite3::SQLException: duplicate column name: precaution_red: ALTER TABLE "categories" ADD "precaution_red" text
/Users/med_plus_bs4_dev/med_plus_bs4_updated_master/db/migrate/20190216020345_add_precautions_columns_to_categories.rb:6:in `change'
/Users/med_plus_bs4_dev/med_plus_bs4_updated_master/bin/rails:9:in `require'
/Users/med_plus_bs4_dev/med_plus_bs4_updated_master/bin/rails:9:in `<top (required)>'
/Users/med_plus_bs4_dev/med_plus_bs4_updated_master/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'

Caused by:
ActiveRecord::StatementInvalid: SQLite3::SQLException: duplicate column name: precaution_red: ALTER TABLE "categories" ADD "precaution_red" text
/Users/med_plus_bs4_dev/med_plus_bs4_updated_master/db/migrate/20190216020345_add_precautions_columns_to_categories.rb:6:in `change'
/Users/med_plus_bs4_dev/med_plus_bs4_updated_master/bin/rails:9:in `require'
/Users/med_plus_bs4_dev/med_plus_bs4_updated_master/bin/rails:9:in `<top (required)>'
/Users/med_plus_bs4_dev/med_plus_bs4_updated_master/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'

Caused by:
SQLite3::SQLException: duplicate column name: precaution_red
/Users/med_plus_bs4_dev/med_plus_bs4_updated_master/db/migrate/20190216020345_add_precautions_columns_to_categories.rb:6:in `change'
/Users/med_plus_bs4_dev/med_plus_bs4_updated_master/bin/rails:9:in `require'
/Users/med_plus_bs4_dev/med_plus_bs4_updated_master/bin/rails:9:in `<top (required)>'
/Users/med_plus_bs4_dev/med_plus_bs4_updated_master/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)

お手数おかけしますが、ご教示いただけませんでしょうか。 宜しくお願いいたします。:bow:

konchanxxx commented 5 years ago

あれ?これは実行してない感じでしょうか? https://github.com/rexitorg/menta/issues/30#issuecomment-464272402

sumura80 commented 5 years ago

@rexitorg 自分の入力した#30 (comment)がtypoで間違っていました。:sweat_smile: こちら解決していたしました。 大変助かりました。 お忙しい中、ありがとうございました。:bowing_man: