使用MySQL而不是SQLite创建一个新的Ruby on Rails应用程序

Dan*_*man 127 ruby mysql ruby-on-rails

我想用MySQL创建我的Rails应用程序,因为我非常喜欢它.如何在最新版本的Rails中执行此操作而不是默认的SQLite?

Dan*_*man 261

通常,您将使用创建一个新的Rails应用程序

rails ProjectName
Run Code Online (Sandbox Code Playgroud)

要使用MySQL,请使用

rails new ProjectName -d mysql
Run Code Online (Sandbox Code Playgroud)


Mic*_*are 138

如果您已有rails项目,请将config/database.yml文件中的适配器更改为mysql,并确保指定有效的用户名和密码,以及可选的套接字:

development:
  adapter: mysql2
  database: db_name_dev
  username: koploper
  password:
  host: localhost
  socket: /tmp/mysql.sock
Run Code Online (Sandbox Code Playgroud)

接下来,确保编辑Gemfile以包含mysql2或activerecord-jdbcmysql-adapter(如果使用jruby).

  • 你还必须更新Gemfile; 删除`gem'sqlite3'`并添加`gem'mysql2'` (13认同)
  • 这很有帮助; 因为其他答案只是使用发电机.这个答案适用于在应用程序创建之后将其添加到应用程序,以替换现有(例如SQLite)数据库或添加辅助数据库.此外,mysql2似乎是目前Rails的首选宝石. (2认同)

Rob*_*one 54

对于Rails 3,您可以使用此命令使用mysql创建新项目:

$ rails new projectname -d mysql
Run Code Online (Sandbox Code Playgroud)


小智 24

去终端写下:

rails new <project_name> -d mysql
Run Code Online (Sandbox Code Playgroud)


小智 22

如果您尚未创建应用程序,只需转到cmd(对于Windows)或终端(对于linux/unix)并键入以下命令以使用mysql数据库创建rails应用程序:

$rails new <your_app_name> -d mysql

它适用于任何高于rails 3的版本.如果您已经创建了应用程序,那么您可以执行以下两项操作之一:

  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.重命名如下:

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

此外,从您的Gemfile中删除gem'sqlite3'并添加gem'mysql2'


Cod*_*der 13

如果您使用的是rails 3或更高版本

rails new your_project_name -d mysql
Run Code Online (Sandbox Code Playgroud)

如果你有早期版本

rails new -d mysql your_project_name
Run Code Online (Sandbox Code Playgroud)

因此,在创建项目之前,您需要找到rails版本.你可以找到的

rails -v
Run Code Online (Sandbox Code Playgroud)


vij*_*han 11

rails new <project_name> -d mysql
Run Code Online (Sandbox Code Playgroud)

要么

rails new projectname
Run Code Online (Sandbox Code Playgroud)

config/database.yml中的更改

development:
  adapter: mysql2
  database: db_name_name
  username: root
  password:
  host: localhost
  socket: /tmp/mysql.sock
Run Code Online (Sandbox Code Playgroud)


小智 11

使用-d选项创建应用程序

rails new AppName -d mysql
Run Code Online (Sandbox Code Playgroud)


小智 9

$ rails --help 
Run Code Online (Sandbox Code Playgroud)

永远是你最好的朋友

用法:

$ rails new APP_PATH[options]
Run Code Online (Sandbox Code Playgroud)

另请注意,应在应用程序名称后面提供选项

rails和mysql

$ rails new project_name -d mysql
Run Code Online (Sandbox Code Playgroud)

rails和postgresql

$ rails new project_name -d postgresql
Run Code Online (Sandbox Code Playgroud)


小智 8

您应该使用开关-D而不是-d,因为它将生成两个应用程序和没有文档文件夹的mysql.

  rails -D mysql project_name  (less than version 3)

  rails new project_name -D mysql (version 3 and up)
Run Code Online (Sandbox Code Playgroud)

或者,您只需使用该--database选项.


小智 7

只需转到rails控制台并输入:

rails new YOURAPPNAME -d mysql
Run Code Online (Sandbox Code Playgroud)


Jam*_*ery 6

如果要创建新的rails应用程序,可以使用-d开关设置数据库,如下所示:

rails -d mysql myapp
Run Code Online (Sandbox Code Playgroud)

以后它总是很容易切换你的数据库,如果你在Mac上开发,使用sqlite真的很容易.


and*_*318 6

在Rails 3中,您可以执行

$rails new projectname --database=mysql
Run Code Online (Sandbox Code Playgroud)