概要
この度railsを触っているのですが、migrateのあたりが苦手で、よくエラーが
起きてしまって困っていたので、自分で忘れないようにメモをさせていただきます。
環境
Rails 6.1.7
ruby 3.1.2
AWS
cloud9
起きたエラー集
SQLite3::SQLException: table "tags" already exists
これが起きた背景は、タグ機能をgemなしで作っていたところに、gemを導入したことがきっかけです。
結局その後、gemを使わずにタグ機能の運用をしようとして、rails db:migrateしたことでエラーが起こりました。
考えなしに入れたり消したりしたらダメですね。
今回のSQLite3::...のエラーを解決していきます。
手順
まず、tagsのテーブルが被っているので、テーブルを削除します。
ec2-user:~/environment/アプリ名 (main) $ rails db
↑SQLite3にアクセス
sqlite> .table
↑SQLite3でtableの一覧を確認
sqlite> drop table tags;
↑これで被っていたtagsのテーブルの削除をします!
そしたら、sqlite> .tableでテーブル一覧を確認したらtagsが消えています!
SQLite3::SQLException: no such table: tags
SQLite3::SQLException: table "tags" already existsを解決した後、テーブルを作り忘れて、rails db:migrateを行うと、今回のタイトルのエラーが起きます。
単純にテーブルを作成してやれば、一発解決です!
ec2-user:~/environment/アプリ名 (main) $ rails db
↑SQLite3にアクセス
sqlite> create table tags(id, tag_name);
↑SQLite3でtagsのtableを作成
create table tags(id, tag_name);
のかっこの中はカラムです。
作成した後
sqlite> .table
↑SQLite3でtableの一覧を確認
これでtagsのテーブルがあることを確認してからrails db:migrateをすれば解決です!