質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

1回答

223閲覧

Deviseのマイグレーションファイルに記述したカラムがスキーマに反映されていない

ksmtsri

総合スコア0

Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2023/05/18 10:07

編集2023/05/18 10:11

実現したいこと

スキーマファイルに、DeviseCreateCustomersのマイグレーションファイルで記述したカラムを反映させたい

発生している問題・エラーメッセージ

railsでWebサイトを作成しております。
deviseをインストールし、DeviseCreateCustomersのマイグレーションファイルに
カラムを記述したのですがエラーが出たので調べると、スキーマファイルにDeviseCreateCustomersに記述したカラムが反映されていませんでした。

エラーメッセージ
イメージ説明

Rails6.1.7
Ruby3.1.2

ソースコード

class

1 def change 2 create_table :customers do |t| 3 ## Database authenticatable 4 t.string :email, null: false, default: "" 5 t.string :encrypted_password, null: false, default: "" 6 7 ## Recoverable 8 t.string :reset_password_token 9 t.datetime :reset_password_sent_at 10 11 ## Rememberable 12 t.datetime :remember_created_at 13 14 ## Trackable 15 # t.integer :sign_in_count, default: 0, null: false 16 # t.datetime :current_sign_in_at 17 # t.datetime :last_sign_in_at 18 # t.string :current_sign_in_ip 19 # t.string :last_sign_in_ip 20 21 ## Confirmable 22 # t.string :confirmation_token 23 # t.datetime :confirmed_at 24 # t.datetime :confirmation_sent_at 25 # t.string :unconfirmed_email # Only if using reconfirmable 26 27 ## Lockable 28 # t.integer :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts 29 # t.string :unlock_token # Only if unlock strategy is :email or :both 30 # t.datetime :locked_at 31 32 t.string :first_name, null: false 33 t.string :last_name, null: false 34 t.string :first_name_kana, null: false 35 t.string :last_name_kana, null: false 36 t.string :postal_code, null: false 37 t.string :address, null: false 38 t.string :telephone_number, null: false 39 t.boolean :is_active, null: false, default: true 40 t.timestamps null: false 41 end 42 43 add_index :customers, :email, unique: true 44 add_index :customers, :reset_password_token, unique: true 45 # add_index :customers, :confirmation_token, unique: true 46 # add_index :customers, :unlock_token, unique: true 47 end 48end

試したこと

ロールバック

こちらがスキーマファイルの該当箇所になります。
イメージ説明

初めての質問で至らぬ箇所があるかと思いますがよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

winterboum

2023/05/23 02:49

1. そのmigration file はどこにありどういう名前ですか 2. その migration file 作成後 db:migrateを実行し、その後編集していませんか
ksmtsri

2023/05/23 03:32

ありがとうございます! db/migrate/202305~~~~~Devise_Create_Customersのファイルです。 おそらくdb:migrateを実行後に編集してしまっており、一度消して作り直したのですが反映されない状態です。
guest

回答1

0

migrationは一度実行するとその後編集しても db:migrateで実行はされません。

  1. 新たに columnを追加する migrationを作成する
  2. その migration の前まで戻してからdb:migrateしなおす。

のどちらかが必要です。
1が安全です。
一人で実装し、githubなどにpush していないのなら 2 も可能ですが、ではない場合は1しかないです

投稿2023/05/23 04:29

winterboum

総合スコア23347

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問