SQLite の代わりに MySQL を使用して新しい Ruby on Rails アプリケーションを作成する

StackOverflow https://stackoverflow.com/questions/3585

  •  08-06-2019
  •  | 
  •  

質問

MySQL がとても気に入っているので、MySQL を使用して Rails アプリケーションを作成したいと考えています。デフォルトの SQLite ではなく最新バージョンの Rails でそれを行うにはどうすればよいですか?

役に立ちましたか?

解決

すでに Rails プロジェクトがある場合は、アダプターを変更します。 config/database.yml ファイルに mysql 有効なユーザー名とパスワード、およびオプションでソケットを指定していることを確認してください。

development:
  adapter: mysql2
  database: db_name_dev
  username: koploper
  password:
  host: localhost
  socket: /tmp/mysql.sock

次に、Gemfile を編集して、mysql2 または activerecord-jdbcmysql-adapter (jruby を使用している場合) を含めるようにしてください。

他のヒント

通常、次を使用して新しい Rails アプリを作成します。

rails ProjectName

MySQL を使用するには、次を使用します。

rails new ProjectName -d mysql

Rails 3 の場合、次のコマンドを使用して、mysql を使用して新しいプロジェクトを作成できます。

$ rails new projectname -d mysql

ターミナルに移動して次のように書きます。

rails new <project_name> -d mysql

アプリをまだ作成していない場合は、cmd (Windows の場合) またはターミナル (Linux/UNIX の場合) に移動し、次のコマンドを入力して、mysql データベースを使用して Rails アプリケーションを作成します。

$rails new <your_app_name> -d mysql

Rails バージョン 3 以降のもので動作します。すでにアプリを作成している場合は、次の 2 つのいずれかを実行できます。

  1. を作成します 別の名前 mysql データベースを備えたアプリ、cd に移動 別の名前/config/ に移動し、この新しいアプリから database.yml ファイルをコピーします。それをdatabase.ymlに貼り付けます。 あなたのアプリ名 アプリ。ただし、データベース名を変更し、その後、database.yml ファイルでそれに応じてデータベースのユーザー名とパスワードを設定してください。

または

  1. CDに移動 あなたのアプリ名/config/ を開き、database.yml を開きます。次のように名前を変更します。

発達:
アダプタ:mysql2
データベース:db_name_name
ユーザー名:根
パスワード:
ホスト:ローカルホスト
ソケット:/tmp/mysql.sock

さらに、Gemfile から gem 'sqlite3' を削除し、gem 'mysql2' を追加します。

Rails 3 以降のバージョンを使用している場合

rails new your_project_name -d mysql

以前のバージョンをお持ちの場合

rails new -d mysql your_project_name

したがって、プロジェクトを作成する前に、Rails のバージョンを見つける必要があります。で見つけることができます

rails -v
rails -d mysql ProjectName
rails new <project_name> -d mysql

または

rails new projectname

config/database.yml の変更

development:
  adapter: mysql2
  database: db_name_name
  username: root
  password:
  host: localhost
  socket: /tmp/mysql.sock

-d オプションを使用してアプリケーションを作成する

rails new AppName -d mysql
$ rails --help 

いつもあなたの親友です

使用法:

$ rails new APP_PATH[options]

オプションはアプリケーション名の後に指定する必要があることにも注意してください

レールとmysql

$ rails new project_name -d mysql

レールとpostgresql

$ rails new project_name -d postgresql

スイッチ -d の代わりに -D を使用する必要があります。これは、ドキュメント フォルダーのない 2 つのアプリと mysql を生成するためです。

  rails -D mysql project_name  (less than version 3)

  rails new project_name -D mysql (version 3 and up)

あるいは、単に使用します --database オプション。

Rails コンソールに移動して次のように入力するだけです。

rails new YOURAPPNAME -d mysql

Rails 3 では、次のことができます

$rails new projectname --database=mysql

新しい Rails アプリケーションを作成している場合は、次のように -d スイッチを使用してデータベースを設定できます。

rails -d mysql myapp

ただし、後でデータベースを切り替えるのはいつでも簡単です。Mac で開発している場合は、sqlite を使用する方が本当に簡単です。

新しいプロジェクトについては、簡単です:

rails new your_new_project_name -d mysql

既存のプロジェクトでは、間違いなくより複雑です。これにより、既存の Rails プロジェクトに多くの問題が発生しました。これは私にとってはうまくいきます:

# On Gemfile:
gem 'mysql2',  '>= 0.3.18', '< 0.5' # copied from a new project for rails 5.1 :)
gem 'activerecord-mysql-adapter' # needed for mysql..

# On Dockerfile or on CLI:
sudo apt-get install -y  mysql-client libmysqlclient-dev 

まず、mysql gem がインストールされていることを確認します (インストールされていない場合)。コンソールに次のコマンドを入力するよりも

gem install mysql2

新しい Rails アプリを作成し、コンソールで次のコマンドを入力して mysql データベースをデフォルトのデータベースとして設定します。

rails new app-name -d mysql

次のコマンドを使用して、mysql データベースを使用して API 用の新しいアプリを作成します

rails new <appname> --api -d mysql


  adapter: mysql2
  encoding: utf8
  pool: 5
  username: root
  password: 
  socket: /var/run/mysqld/mysqld.sock

データベース.yml

# MySQL. Versions 5.1.10 and up are supported.
#
# Install the MySQL driver
#   gem install mysql2
#
# Ensure the MySQL gem is defined in your Gemfile
#   gem 'mysql2'
#
# And be sure to use new-style password hashing:
#   https://dev.mysql.com/doc/refman/5.7/en/password-hashing.html
#
default: &default
  adapter: mysql2
  encoding: utf8
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  host: localhost
  database: database_name
  username: username
  password: secret

development:
  <<: *default

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  <<: *default

# As with config/secrets.yml, you never want to store sensitive information,
# like your database password, in your source code. If your source code is
# ever seen by anyone, they now have access to your database.
#
# Instead, provide the password as a unix environment variable when you boot
# the app. Read http://guides.rubyonrails.org/configuring.html#configuring-a-database
# for a full rundown on how to provide these environment variables in a
# production deployment.
#
# On Heroku and other platform providers, you may have a full connection URL
# available as an environment variable. For example:
#
#   DATABASE_URL="mysql2://myuser:mypass@localhost/somedatabase"
#
# You can use this database configuration with:
#
#   production:
#     url: <%= ENV['DATABASE_URL'] %>
#
production:
  <<: *default

Gemfile:

# Use mysql as the database for Active Record
gem 'mysql2', '>= 0.4.4', '< 0.6.0'
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top