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

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

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

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

データベース

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

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

Active Record

Active Recordは、一つのオブジェクトに対しドメインのロジックとストレージの抽象性を結合するデザインパターンです。

解決済

db:migrateがうまくいかない Cannot add foreign key constraint 外部キーの制約がおかしいのか

masaosan18
masaosan18

総合スコア64

Ruby on Rails

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

データベース

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

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

Active Record

Active Recordは、一つのオブジェクトに対しドメインのロジックとストレージの抽象性を結合するデザインパターンです。

3回答

0評価

0クリップ

1096閲覧

投稿2020/08/26 01:57

マイグレーションファイルを作成したあと、db:migrateを実行したいのですがうまくいきません。

ruby

$ docker-compose run --rm api bin/rails db:migrate Starting ***************_db_1 ... done == 20200813045222 CreateStaffs: migrating ===================================== -- create_table(:staffs) rails aborted! StandardError: An error has occurred, all later migrations canceled: Mysql2::Error: Table '***************_development.offices' doesn't exist Caused by: ActiveRecord::StatementInvalid: Mysql2::Error: Table '***************_development.offices' doesn't exist Caused by: Mysql2::Error: Table '***************_development.offices' doesn't exist /usr/local/bundle/gems/mysql2-0.5.3/lib/mysql2/client.rb:131:in `_query' /usr/local/bundle/gems/mysql2-0.5.3/lib/mysql2/client.rb:131:in `block in query' /usr/local/bundle/gems/mysql2-0.5.3/lib/mysql2/client.rb:130:in `handle_interrupt' /usr/local/bundle/gems/mysql2-0.5.3/lib/mysql2/client.rb:130:in `query' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:201:in `block (2 levels) in execute' /usr/local/bundle/gems/activesupport-6.0.3.1/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads' /usr/local/bundle/gems/activesupport-6.0.3.1/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares' /usr/local/bundle/gems/activesupport-6.0.3.1/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:200:in `block in execute' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract_adapter.rb:722:in `block (2 levels) in log' /usr/local/bundle/gems/activesupport-6.0.3.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize' /usr/local/bundle/gems/activesupport-6.0.3.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt' /usr/local/bundle/gems/activesupport-6.0.3.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize' /usr/local/bundle/gems/activesupport-6.0.3.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt' /usr/local/bundle/gems/activesupport-6.0.3.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract_adapter.rb:721:in `block in log' /usr/local/bundle/gems/activesupport-6.0.3.1/lib/active_support/notifications/instrumenter.rb:24:in `instrument' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract_adapter.rb:712:in `log' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:199:in `execute' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/mysql/database_statements.rb:41:in `execute' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:210:in `execute_and_free' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:746:in `column_definitions' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/schema_statements.rb:114:in `columns' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract_adapter.rb:745:in `column_for' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:781:in `mismatched_foreign_key' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:616:in `translate_exception' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract_adapter.rb:704:in `translate_exception_class' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract_adapter.rb:725:in `rescue in block in log' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract_adapter.rb:721:in `block in log' /usr/local/bundle/gems/activesupport-6.0.3.1/lib/active_support/notifications/instrumenter.rb:24:in `instrument' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract_adapter.rb:712:in `log' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:199:in `execute' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/mysql/database_statements.rb:41:in `execute' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/schema_statements.rb:315:in `create_table' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/mysql/schema_statements.rb:81:in `create_table' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/migration.rb:890:in `block in method_missing' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/migration.rb:858:in `block in say_with_time' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/migration.rb:858:in `say_with_time' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/migration.rb:879:in `method_missing' /api/db/migrate/20200813045222_create_staffs.rb:3:in `change' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/migration.rb:828:in `exec_migration' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/migration.rb:812:in `block (2 levels) in migrate' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/migration.rb:811:in `block in migrate' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:471:in `with_connection' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/migration.rb:810:in `migrate' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/migration.rb:1002:in `migrate' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/migration.rb:1310:in `block in execute_migration_in_transaction' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/migration.rb:1363:in `ddl_transaction' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/migration.rb:1309:in `execute_migration_in_transaction' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/migration.rb:1281:in `block in migrate_without_lock' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/migration.rb:1280:in `each' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/migration.rb:1280:in `migrate_without_lock' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/migration.rb:1229:in `block in migrate' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/migration.rb:1382:in `with_advisory_lock' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/migration.rb:1229:in `migrate' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/migration.rb:1061:in `up' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/migration.rb:1036:in `migrate' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/tasks/database_tasks.rb:238:in `migrate' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/railties/databases.rake:86:in `block (3 levels) in <main>' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/railties/databases.rake:84:in `each' /usr/local/bundle/gems/activerecord-6.0.3.1/lib/active_record/railties/databases.rake:84:in `block (2 levels) in <main>' /usr/local/bundle/gems/railties-6.0.3.1/lib/rails/commands/rake/rake_command.rb:23:in `block in perform' /usr/local/bundle/gems/railties-6.0.3.1/lib/rails/commands/rake/rake_command.rb:20:in `perform' /usr/local/bundle/gems/railties-6.0.3.1/lib/rails/command.rb:48:in `invoke' /usr/local/bundle/gems/railties-6.0.3.1/lib/rails/commands.rb:18:in `<main>' /usr/local/bundle/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require' /usr/local/bundle/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi' /usr/local/bundle/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register' /usr/local/bundle/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi' /usr/local/bundle/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require' /usr/local/bundle/gems/activesupport-6.0.3.1/lib/active_support/dependencies.rb:324:in `block in require' /usr/local/bundle/gems/activesupport-6.0.3.1/lib/active_support/dependencies.rb:291:in `load_dependency' /usr/local/bundle/gems/activesupport-6.0.3.1/lib/active_support/dependencies.rb:324:in `require' bin/rails:4:in `<main>' Caused by: Mysql2::Error: Cannot add foreign key constraint Tasks: TOP => db:migrate (See full trace by running task with --trace)

どうかいけつすればよいのでしょうか。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Ruby on Rails

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

データベース

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

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

Active Record

Active Recordは、一つのオブジェクトに対しドメインのロジックとストレージの抽象性を結合するデザインパターンです。