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

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

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

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

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

解決済

1回答

767閲覧

Rails カラムをremoveしようとしたらDeprecation warning: Expected string default value for〜とでてエラーとなります。

jirou6699

総合スコア4

Ruby on Rails 6

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

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

0クリップ

投稿2020/09/07 11:28

前提・実現したいこと

RailsとmySOLを使用して作成したDBからいらないカラムを取り除けるようにしたいです。

ここに質問の内容を詳しく書いてください。
上記のようにDBを作成しており、いらないカラムを削除する時に、ターミナルでコードを記入したところ

rails generate migration Removestaff_idFromJobs staff_id:

下記のようなエラーが発生しました、createされているのでターミナルのコマンド入力は間違っていないと思います。

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

% rails generate migration Removestaff_idFromJobs staff_id:integer Running via Spring preloader in process 2444 Deprecation warning: Expected string default value for '--test-framework'; got false (boolean). This will be rejected in the future unless you explicitly pass the options `check_default_type: false` or call `allow_incompatible_default_type!` in your code You can silence deprecations warning by setting the environment variable THOR_SILENCE_DEPRECATION. invoke active_record create db/migrate/20200907103526_removestaff_id_from_jobs.rb

該当のソースコード(staff_idを削除したい)

rails

1class CreateJobs < ActiveRecord::Migration[6.0] 2 def change 3 create_table :jobs do |t| 4 t.text :title 5 t.string :image1 6 t.string :image2 7 t.string :image3 8 t.string :image4 9 t.string :image5 10 t.text :description 11 t.string :salary 12 t.text :access 13 t.string :time 14 t.string :week 15 t.string :employee 16 t.string :term 17 t.integer :staff_id, foreign_key: true 18 t.integer :prefecture_id, foreign_key: true 19 t.timestamps 20 end 21 end 22end 23

試したこと

色々と調べてるとよく似た症状の記事を見つけました、これによるとrailsのバージョンが違っているため、同様の症状が出ていると紹介されています。たしかに、referencesをつかった外部キーの貼り付けもできていませんでした。
https://qiita.com/igat/items/4c29ab388b817b01daf8

ただ、ずっとrails6で作業しており、前に作ったアプリではreferencesもつかえましたし、カラムもremove
できていました。知らずしらずに変更をかけてしまったようにおもうのですが、解決手段がわかりません
誰かアドバイスなどいただけますでしょうか?

補足情報(FW/ツールのバージョンなど)

ruby '2.6.5' # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' gem 'rails', '~> 6.0.0' # Use mysql as the database for Active Record gem 'mysql2', '>= 0.5.3' # Use Puma as the app server gem 'puma', '~> 3.11' # Use SCSS for stylesheets gem 'sass-rails', '~> 5' # Transpile app-like JavaScript. Read more: https://github.com/rails/webpacker gem 'webpacker', '~> 4.0' # Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks gem 'turbolinks', '~> 5' # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder gem 'jbuilder', '~> 2.7'

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

Removestaff_idFromJobs と書いても rails は 「カラム削除のmigraetionを作る」と理解できず、 staff_id:integer を作ろうとしていないかな。
rails generate migration Removestaff_idFromJobs
だけで change の中身が空のmigrationを作り
そこに remove_column :jobs, :staff
を入れるというのを手作業で編集してください

投稿2020/09/09 10:32

winterboum

総合スコア23329

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

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

jirou6699

2020/09/12 13:53

ありがとうございました!しっかり確認していきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問