Tworzenie nowej aplikacji Ruby on Rails przy użyciu MySQL zamiast SQLite

Chcę stworzyć moją aplikację Rails z MySQL, ponieważ bardzo ją lubię. Jak mogę to zrobić w najnowszej wersji Rails zamiast domyślnego SQLite?

Author: random, 2008-08-06

19 answers

Jeśli masz już projekt rails, Zmień adapter w pliku config/database.yml na mysql i upewnij się, że podałeś poprawną nazwę użytkownika i hasło oraz opcjonalnie gniazdo:

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

Następnie upewnij się, że edytujesz plik Gemfile, aby zawierał Adapter mysql2 lub activerecord-jdbcmysql-(jeśli używasz jruby).

 141
Author: Michiel de Mare,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-07 10:59:29

Normalnie tworzysz nową aplikację Rails używając

rails ProjectName

Aby użyć MySQL, użyj

rails new ProjectName -d mysql
 262
Author: Daniel Broekman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-10 00:45:46

Dla Rails 3 możesz użyć tego polecenia, aby utworzyć nowy projekt używając mysql:

$ rails new projectname -d mysql
 58
Author: Robbie Done,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-10-20 14:00:00

Przejdź do terminala i napisz:

rails new <project_name> -d mysql
 25
Author: Abhinav,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-17 18:23:17

Jeśli nie utworzyłeś jeszcze swojej aplikacji, po prostu przejdź do cmd (Dla windows) lub terminal (Dla linux / unix)i wpisz następujące polecenie, aby utworzyć aplikację rails z bazą danych mysql:

$rails new <your_app_name> -d mysql

Działa na wszystko powyżej rails w wersji 3. Jeśli masz już utworzoną aplikację, możesz zrobić jedną z 2 następujących rzeczy:

  1. Utwórz aplikację another_namez bazą danych mysql, przejdź do cd another_name/config/ i skopiuj bazę danych.plik yml z tego nowa aplikacja. Wklej go do bazy danych.yml of your_app_name app. Ale upewnij się, aby zmienić nazwy bazy danych i ustawić nazwę użytkownika/hasło bazy danych odpowiednio w bazie danych.plik yml po zrobieniu tego.

Lub

  1. przejdź do cd your_app_name/config / i otwórz bazę danych.yml. Zmień nazwę w następujący sposób:

Rozwój:
adapter: mysql2
baza danych: db_name_name
nazwa użytkownika: root
hasło:
host: localhost
socket: / tmp / mysql.skarpeta

Ponadto Usuń gem' sqlite3 'z pliku Gemfile i dodaj gem 'mysql2'

 22
Author: Drake Mandin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-23 11:47:55

Jeśli używasz rails 3 lub nowszej wersji

rails new your_project_name -d mysql

Jeśli masz wcześniejszą wersję

rails new -d mysql your_project_name

Więc zanim stworzysz swój projekt, musisz znaleźć wersję rails. że można znaleźć przez

rails -v
 13
Author: Coder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-10 08:43:51
rails -d mysql ProjectName
 12
Author: huacnlee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-27 06:28:31
rails new <project_name> -d mysql

Lub

rails new projectname

Zmiany w konfiguracji / bazie danych.yml

development:
  adapter: mysql2
  database: db_name_name
  username: root
  password:
  host: localhost
  socket: /tmp/mysql.sock
 11
Author: vijay chouhan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-21 14:17:00

Tworzenie aplikacji z opcją-d

rails new AppName -d mysql
 11
Author: Dipali Nagrale,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-21 13:49:58
$ rails --help 

Is always your best friend

Użycie:

$ rails new APP_PATH[options]

Należy również pamiętać, że opcje powinny być podane po nazwie aplikacji

Rails i mysql

$ rails new project_name -d mysql

Rails i postgresql

$ rails new project_name -d postgresql
 9
Author: George Bellos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-18 15:05:43

Powinieneś użyć przełącznika-D zamiast-D, ponieważ wygeneruje on dwie aplikacje i mysql bez folderów dokumentacji.

  rails -D mysql project_name  (less than version 3)

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

Alternatywnie możesz użyć opcji --database.

 9
Author: Marthinus A. Botha,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-29 08:32:17

Po prostu przejdź do konsoli rails i wpisz:

rails new YOURAPPNAME -d mysql
 7
Author: Amarpreet Jethra,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-14 06:49:24

W Rails 3 możesz zrobić

$rails new projectname --database=mysql
 6
Author: andy318,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-10 08:42:53

Jeśli tworzysz nową aplikację rails, możesz ustawić bazę danych używając przełącznika-d w następujący sposób:

rails -d mysql myapp

Jego zawsze łatwo przełączyć bazę danych później jednak, A korzystanie z sqlite naprawdę jest łatwiejsze, jeśli rozwijasz się na komputerze Mac.

 6
Author: James Avery,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-10 08:44:14

W nowym projekcie, easy peasy:

rails new your_new_project_name -d mysql

Na istniejącym projekcie, zdecydowanie trudniejsze. To dało mi wiele problemów w istniejących projektach rails. U mnie to działa:

# 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 
 3
Author: Riccardo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-08 21:45:57

Najpierw upewnij się, że mysql gem jest zainstalowany, jeśli nie? następnie wpisz następujące polecenie w konsoli

gem install mysql2

Następnie utwórz nową aplikację rails i ustaw bazę danych mysql jako domyślną bazę danych, wpisując następujące polecenie w konsoli

rails new app-name -d mysql
 2
Author: Shabbir,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-14 14:48:22

Użyj następującego polecenia, aby utworzyć nową aplikację dla API z bazą danych mysql

rails new <appname> --api -d mysql


  adapter: mysql2
  encoding: utf8
  pool: 5
  username: root
  password: 
  socket: /var/run/mysqld/mysqld.sock
 0
Author: Dinesh Vaitage,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-01 18:58:31

Baza danych.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'
 0
Author: artamonovdev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-02-22 05:02:45

Najpierw upewnij się, że sterownik MySQL jest w systemie, jeśli nie uruchom go na terminalu, jeśli używasz Ubuntu lub dowolnej dystrybucji Debiana

sudo apt-get install mysql-client libmysqlclient-dev

I dodaj to do swojego Gemfile

gem 'mysql2', '~> 0.3.16'

Następnie uruchom w katalogu głównym projektu

bundle install

Następnie możesz dodać konfigurację mysql do config / database.yml jako poprzednie odpowiedzi

 0
Author: Muhammad Elbadawy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-04-08 17:55:27