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

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

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

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

MySQL

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

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Q&A

解決済

1回答

2868閲覧

Rails5.2、MySQL2でデータ型JSONのカラムを扱いたいです

yamayama-ya-ma

総合スコア14

Ruby on Rails 5

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

MySQL

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

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

0グッド

0クリップ

投稿2018/09/05 14:28

編集2018/09/05 14:31

#実現したいこと
・Railsアプリのあるモデルに、json型の画像格納用カラムを追加したいです。
CarrieWaveを用いて複数の画像を投稿するため、こちらのやり方で実現したいと思っています。

#エラーメッセージ

console

1-- add_column(:places, :pictures, :json) 2rails aborted! 3StandardError: An error has occurred, all later migrations canceled: 4 5Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'json' at line 1: ALTER TABLE `places` ADD `pictures` json

マイグレーションを実行すると。上記のようなエラーになります。

#現状

console

1$ rails dbconsole 2mysql> status 3Server version: 5.5.60 MySQL Community Server (GPL) 4UNIX socket: /var/lib/mysql/mysql.sock

databaseyml

1default: &default 2 adapter: mysql2 3 encoding: utf8 4 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> 5 username: root 6 password: 7 host: localhost 8 9development: 10 <<: *default 11 database:

#環境
Ruby2.4
Rails 5.2
DevelopmentではMySQL2 5.5.60?
herokuではpostgreSQL
Cloud9

MySQLのバージョンが良くない?のでしょうか。
MySQL「2」の場合の方策をご存知の方、何かアドバイスをいただけないでしょうか。

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

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

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

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

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

guest

回答1

0

ベストアンサー

MySQLのJSON対応は5.7.8以降のようなので、MySQLのバージョンをアップデートした方が良いかと思います。
https://dev.mysql.com/doc/refman/5.7/en/json.html

ちなみにmysql2というのはRubyのMySQLライブラリのバージョンというか名前みたいなもので、MySQLのサーバやクライアントのバージョンとは異なるものです。

あるいは、そもそも本番環境ではPostgreSQLにするのであれば、開発環境もPostgreSQLにする、というのも検討された方がよいかと思いました。

投稿2018/09/05 16:41

takahashim

総合スコア1877

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

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

yamayama-ya-ma

2018/09/06 06:56

どうもありがとうございます。もう既に色々なデータが入っているためMySQLのまま行こうと思います。 MySQLを5.7.23にしましたがjson扱えずダメでしたので、5.7.8にしようと色々探しましたがそもそも検索しまくっても何も見当たりませんでした。 MySQLを一旦削除(sudo yum remove)して8.0にしようとしましたが ``` Resolving Dependencies --> Running transaction check ---> Package mysql-community-server.x86_64 0:8.0.12-1.el6 will be installed --> Processing Dependency: mysql-community-common(x86-64) = 8.0.12-1.el6 for package: mysql-community-server-8.0.12-1.el6.x86_64 --> Processing Dependency: mysql-community-client(x86-64) >= 8.0.0 for package: mysql-community-server-8.0.12-1.el6.x86_64 --> Running transaction check ---> Package mysql-community-client.x86_64 0:8.0.12-1.el6 will be installed --> Processing Dependency: mysql-community-libs(x86-64) >= 8.0.0 for package: mysql-community-client-8.0.12-1.el6.x86_64 ---> Package mysql-community-common.x86_64 0:8.0.12-1.el6 will be installed --> Running transaction check ---> Package mysql-community-libs.x86_64 0:8.0.12-1.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved ============================================================================================ Package Arch Version Repository Size ============================================================================================ Installing: mysql-community-server x86_64 8.0.12-1.el6 mysql80-community 387 M Installing for dependencies: mysql-community-client x86_64 8.0.12-1.el6 mysql80-community 28 M mysql-community-common x86_64 8.0.12-1.el6 mysql80-community 662 k mysql-community-libs x86_64 8.0.12-1.el6 mysql80-community 2.5 M Transaction Summary ============================================================================================ Install 1 Package (+3 Dependent packages) Total download size: 418 M Installed size: 1.7 G Is this ok [y/d/N]: y Downloading packages: (1/4): mysql-community-common-8.0.12-1.el6.x86_64.rpm | 662 kB 00:00:00 (2/4): mysql-community-libs-8.0.12-1.el6.x86_64.rpm | 2.5 MB 00:00:01 (3/4): mysql-community-client-8.0.12-1.el6.x86_64.rpm | 28 MB 00:00:09 (4/4): mysql-community-server-8.0.12-1.el6.x86_64.rpm | 387 MB 00:00:28 -------------------------------------------------------------------------------------------- Total 14 MB/s | 418 MB 00:00:30 Running transaction check Running transaction test Transaction check error: installing package mysql-community-server-8.0.12-1.el6.x86_64 needs 938MB on the / filesystem Error Summary ------------- Disk Requirements: At least 938MB more space needed on the / filesystem. ``` Cloud9の容量的に厳しいみたいで、色々終わりました。いやー難しいですね
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問