== 20210713102632 DeviseCreateUsers: migrating ================================
-- create_table(:users)
-> 0.0447s
-- add_index(:users, :email, {:unique=>true})
rails aborted!
StandardError: An error has occurred, all later migrations canceled:
Mysql2::Error: Specified key was too long; max key length is 767 bytes
migrationファイルを編集し、db:migrateを実行した所 too long というMySQLのエラー・・
こちら(https://qiita.com/terufumi1122/items/9ea764618eba01144e09) を参考に、
以下のファイルを新規作成しました。
ファイル内容もコピペ
場所:config/initializer配下
ファイル名:mysql.rb
require 'active_record/connection_adapters/abstract_mysql_adapter'
module ActiveRecord
module ConnectionAdapters
class AbstractMysqlAdapter
NATIVE_DATABASE_TYPES[:string] = { :name => "varchar", :limit => 191 }
end
end
end
⇒アプリを作る一番最初に、文字コードutf8mb4をutf8に変更しています。
文字コードによって1文字のバイト数が異なります。
恐らく新規作成したファイルで制限のバイト数を変更しているため、エラーが解消出来るものと思います。
(よく分かっていない)
前回エラーが出た際は確かこの方法で解決しました。
ですが再度エラーが。
== 20210713102632 DeviseCreateUsers: migrating ================================
-- create_table(:users)
rails aborted!
StandardError: An error has occurred, all later migrations canceled:
Mysql2::Error: Table 'users' already exists
既にユーザーテーブルはあるよ!との事。
確かにsequel proで確認するとユーザーテーブルがカラム名なども仕様通りに作れていました。
途中でエラーが出ているのに、何でテーブル作れているんでしょう。
何だか不安になりますが、テーブルや中身は問題がなさそうなので、次に行きます。