我想用MySQL创建我的Rails应用程序,因为我非常喜欢它。 如何在最新版本的Rails中而不是默认的SQLite中执行此操作?
通常,您将使用以下命令创建一个新的Rails应用程序:
要使用MySQL,请使用
1
| rails new ProjectName -d mysql |
如果您已经有一个rails项目,请将config/database.yml文件中的适配器更改为mysql,并确保您指定了有效的用户名和密码,以及可选的套接字:
1 2 3 4 5 6 7
| development:
adapter: mysql2
database: db_name_dev
username: koploper
password:
host: localhost
socket: /tmp/mysql.sock |
接下来,请确保您编辑Gemfile以包括mysql2或activerecord-jdbcmysql-adapter(如果使用jruby)。
对于Rails 3,您可以使用以下命令使用mysql创建一个新项目:
1
| $ rails new projectname -d mysql |
转到终端并输入:
1
| rails new <project_name> -d mysql |
如果您尚未创建应用程序,请转到cmd(对于Windows)或terminal(对于linux / unix),然后键入以下命令以使用mysql数据库创建Rails应用程序:
$rails new -d mysql
它适用于Rails版本3以上的任何版本。如果您已经创建了应用程序,则可以执行以下两项操作之一:
使用mysql数据库创建一个another_name应用程序,转到cd another_name / config /并从该新应用程序复制database.yml文件。将其粘贴到your_app_name应用程序的database.yml中。但是,请确保在执行此操作后更改数据库名称,并在database.yml文件中相应地设置数据库的用户名/密码。
要么
转到cd your_app_name / config /并打开database.yml。重命名如下:
发展:
适配器:mysql2
数据库:db_name_name
用户名:root
密码:
主机:localhost
套接字:/tmp/mysql.sock
此外,从Gemfile中删除gem'sqlite3'并添加gem'mysql2'
如果您使用的是Rails 3或更高版本
1
| rails new your_project_name -d mysql |
如果您有较早的版本
1
| rails new -d mysql your_project_name |
因此,在创建项目之前,您需要找到rails版本。你可以找到
1
| rails -d mysql ProjectName |
1
| rails new <project_name> -d mysql |
要么
config / database.yml中的更改
1 2 3 4 5 6 7
| development:
adapter: mysql2
database: db_name_name
username: root
password:
host: localhost
socket: /tmp/mysql.sock |
使用-d选项创建应用程序
1
| rails new AppName -d mysql |
永远是你最好的朋友
用法:
1
| $ rails new APP_PATH[options] |
还请注意,应在应用程序名称后给出选项
Rails和MySQL
1
| $ rails new project_name -d mysql |
Rails和Postgresql
1
| $ rails new project_name -d postgresql |
您应该使用-D而不是-d开关,因为它将生成两个没有文档文件夹的应用程序和mysql。
1 2 3
| rails -D mysql project_name (less than version 3)
rails new project_name -D mysql (version 3 and up) |
或者,您只使用--database选项。
只需转到rails console并输入:
1
| rails new YOURAPPNAME -d mysql |
在Rails 3中,您可以执行
1
| $rails new projectname --database=mysql |
如果要创建新的Rails应用程序,则可以使用-d开关设置数据库,如下所示:
不过,以后总是很容易切换数据库,如果在Mac上进行开发,则使用sqlite确实更容易。
在新项目中,轻松实现:
1
| rails new your_new_project_name -d mysql |
在现有项目上,绝对棘手。这给了我有关现有Rails项目的许多问题。这种与我合作的作品:
1 2 3 4 5 6
| # 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,如果没有安装?比在控制台中键入以下命令
通过在控制台中键入以下命令,比创建新的Rails应用程序并将mysql数据库设置为默认数据库
1
| rails new app-name -d mysql |
如果您使用的是Ubuntu或任何Debian发行版,则首先应确保系统上已安装MySQL驱动程序(如果未在终端上运行该驱动程序)
1
| sudo apt-get install mysql-client libmysqlclient-dev |
并将其添加到您的Gemfile
1
| gem 'mysql2', '~> 0.3.16' |
然后在项目的根目录中运行
之后,您可以将mysql配置添加到config / database.yml作为之前的答案
使用以下命令为带有MySQL数据库的API创建新应用
1 2 3 4 5 6 7 8 9
| rails new --api -d mysql
adapter: mysql2
encoding: utf8
pool: 5
username: root
password:
socket: /var/run/mysqld/mysqld.sock |
数据库
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| # 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 |
宝石文件:
1 2
| # Use mysql as the database for Active Record
gem 'mysql2', '>= 0.4.4', '< 0.6.0' |