0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Rails migrateエラー解決備忘録

Posted at

概要

この度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のテーブルが被っているので、テーブルを削除します。

ターミナル(cloud9).
ec2-user:~/environment/アプリ名 (main) $ rails db
↑SQLite3にアクセス
ターミナル(cloud9).
sqlite> .table
↑SQLite3でtableの一覧を確認
ターミナル(cloud9).
sqlite> drop table tags;
↑これで被っていたtagsのテーブルの削除をします!

そしたら、sqlite> .tableでテーブル一覧を確認したらtagsが消えています!

SQLite3::SQLException: no such table: tags

SQLite3::SQLException: table "tags" already existsを解決した後、テーブルを作り忘れて、rails db:migrateを行うと、今回のタイトルのエラーが起きます。
単純にテーブルを作成してやれば、一発解決です!

ターミナル(cloud9).
ec2-user:~/environment/アプリ名 (main) $ rails db
↑SQLite3にアクセス
ターミナル(cloud9).
sqlite> create table tags(id, tag_name);
↑SQLite3でtagsのtableを作成

create table tags(id, tag_name);
のかっこの中はカラムです。

作成した後

ターミナル(cloud9).
sqlite> .table
↑SQLite3でtableの一覧を確認

これでtagsのテーブルがあることを確認してからrails db:migrateをすれば解決です!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?