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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby on Rails

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

3回答

1501閲覧

$ rails db:migrate のエラー(railsチュートリアル)

patagoni

総合スコア4

Ruby on Rails

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2020/04/19 06:57

編集2020/05/03 19:54

railsチュートリアルの第二章をやっています。
$ rails generate scaffold User name:string email:string を実行した後の
$ rails db:migrate でどうしてもエラーが出ます。

db\migrate下には 20200411091552_create_users.rb というファイルはあって、
dbフォルダ下にはmigrateフォルダ以外には seeds.rb というファイルだけがあります。

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

rails aborted! ArgumentError: wrong number of arguments (given 2, expected 0) bin/rails:4:in `require' bin/rails:4:in `<main>' Tasks: TOP => db:migrate (See full trace by running task with --trace)

--trace を付けると、以下でした。

PS C:\data\environment\toy_App> rails db:migrate --trace ** Invoke db:migrate (first_time) ** Invoke db:load_config (first_time) ** Invoke environment (first_time) ** Execute environment ** Execute db:load_config ** Execute db:migrate rails aborted! ArgumentError: wrong number of arguments (given 2, expected 0) C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/activerecord-5.2.4.2/lib/active_record/connection_adapters/sqlite3_adapter.rb:32:in `initialize' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/activerecord-5.2.4.2/lib/active_record/connection_adapters/sqlite3_adapter.rb:32:in `new' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/activerecord-5.2.4.2/lib/active_record/connection_adapters/sqlite3_adapter.rb:32:in `sqlite3_connection' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/activerecord-5.2.4.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:830:in `new_connection' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/activerecord-5.2.4.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:874:in `checkout_new_connection' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/activerecord-5.2.4.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:853:in `try_to_checkout_new_connection' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/activerecord-5.2.4.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:814:in `acquire_connection' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/activerecord-5.2.4.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:538:in `checkout' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/activerecord-5.2.4.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:382:in `connection' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/activerecord-5.2.4.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:1033:in `retrieve_connection' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/activerecord-5.2.4.2/lib/active_record/connection_handling.rb:118:in `retrieve_connection' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/activerecord-5.2.4.2/lib/active_record/connection_handling.rb:90:in `connection' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/activerecord-5.2.4.2/lib/active_record/tasks/database_tasks.rb:172:in `migrate' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/activerecord-5.2.4.2/lib/active_record/railties/databases.rake:60:in `block (2 levels) in <top (required)>' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:281:in `block in execute' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:281:in `each' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:281:in `execute' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:219:in `block in invoke_with_call_chain' C:/Ruby26-x64/lib/ruby/2.6.0/monitor.rb:235:in `mon_synchronize' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:199:in `invoke_with_call_chain' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:188:in `invoke' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/application.rb:160:in `invoke_task' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/application.rb:116:in `block (2 levels) in top_level' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/application.rb:116:in `each' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/application.rb:116:in `block in top_level' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/application.rb:125:in `run_with_threads' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/application.rb:110:in `top_level' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/railties-5.2.4.2/lib/rails/commands/rake/rake_command.rb:23:in `block in perform' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/application.rb:186:in `standard_exception_handling' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/railties-5.2.4.2/lib/rails/commands/rake/rake_command.rb:20:in `perform' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/railties-5.2.4.2/lib/rails/command.rb:48:in `invoke' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/railties-5.2.4.2/lib/rails/commands.rb:18:in `<top (required)>' bin/rails:4:in `require' bin/rails:4:in `<main>' Tasks: TOP => db:migrate

試したこと

ぼんやりとした理解しかないレベルの初心者なので、調べても検討がつかず、
ヤケになってググってみつけたそれっぽい解決策をいくつか適当に試みてしまいました。以下に示します。

railsのバージョンが新しくないせいではと思い、
gemfileのバージョンを '5.2.4.2' に書き換えて、$ bundle install したり、$ bundle update してみたりしました。

$ rails app:update というのをやってみたりしました。

$ rails db:drop:_unsafe をやってみたところ、

Database 'db/development.sqlite3' does not exist Database 'db/test.sqlite3' does not exist

と出ました。

$ rails db:create:all してみると、

Couldn't create 'db/development.sqlite3' database. Please check your configuration.

という一文が出力に追加されていました。

gemfileに

gem 'bootsnap', require: false gem 'arel', '9.0.0'

を追加してみましたが、変化はありませんでした。

補足情報

Windows 10
ruby 2.6.5p114 (2019-10-01 revision 67812) [x64-mingw32]

よろしくお願いします。

追記(5/1)

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

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

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

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

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

guest

回答3

0

データベースは作成済みですか?

> rails db:create

また、この記事と似てるかもしれません、一度確認してみてください。
https://qiita.com/N-Ryo/items/35d048cf1c73f6e34546

投稿2020/05/04 04:56

編集2020/05/04 05:13
gnfreeworks

総合スコア306

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

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

patagoni

2020/05/05 02:48

自己解決しました。 回答いただきありがとうございました。
guest

0

gemfileにsqliteのgem入ってます?

こんなやつです

gem 'sqlite' #書き方あってるか分からない

これと同じなんじゃないかと
https://teratail.com/questions/246522

投稿2020/04/30 16:04

hiyashikyuri

総合スコア388

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

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

patagoni

2020/05/01 05:47 編集

gemfileにsqliteは書いてありました。 以下のようになってます。 group :development, :test do gem 'sqlite3', '1.3.13'
guest

0

自己解決

自己解決しました。
原因は、sqlite3_native.soをコマンドラインで生成して
該当の場所にコピーする過程でのミスだったようです。
(参考にした記事 : https://qiita.com/shuhey/items/8cd28aed5906fb5fa6ec)

以下で.soファイルを生成するのですが、

gem install sqlite3 --platform=ruby -- --with-sqlite3-include=C:/sqlite-amalgamation-3310100 --with-sqlite3-lib=C:\Ruby26-x64\bin

この時コピーする先のsqlite3と同じ1.3.13にバージョン指定をして実行するべきでした。
指定しないまま実行したため、最新版のsqlite3に合った.soファイルが生成されてしまったということのようです。

回答していただいた方々、ありがとうございました。

投稿2020/05/05 02:37

patagoni

総合スコア4

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問