ADBLOCKを無効にする

ADBlockがサイトの一部のコンテンツをブロックしています

ADBlock errore

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

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

質問

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)またはterminal(linux / unix)に移動し、次のコマンドを入力してmysqlデータベースでrailsアプリケーションを作成します。

$rails new <your_app_name> -d mysql

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

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

または

  1. cd your_app_name / config /に移動し、database.ymlを開きます。次のように名前を変更します。

開発:
  アダプタ:mysql2
  データベース:db_name_name
  ユーザー名:root
  パスワード:
  ホスト:localhost
  ソケット:/tmp/mysql.sock

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

レール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]

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

railsとmysql

$ rails new project_name -d mysql

railsおよびpostgresql

$ rails new project_name -d postgresql

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

  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

database.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'

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow