Vreau să-mi creez Șine aplicarea cu MySQL, pentru că îmi place atât de mult. Cum pot face asta în cea mai recentă versiune de Șine în loc de implicit SQLite?
În mod normal, ar crea un nou Rails app folosind
Pentru a utiliza MySQL, utilizarea
Dacă aveți deja un rails project, schimba adaptorul în config/database.yml
fișier mysql
și asigurați-vă că specificați un nume de utilizator valid și parola, și, opțional, un socket:
adapter: mysql2
database: db_name_dev
username: koploper
password:
host: localhost
socket: /tmp/mysql.sock
Apoi, asigurați-vă să editați Gemfile să includă mysql2 sau activerecord-jdbcmysql-adaptor (dacă se utilizează jruby).
Pentru Șine 3 puteți utiliza această comandă pentru a crea un nou proiect folosind mysql:
Dacă nu ați creat încă aplicația, du-te la cmd(pentru windows) sau borna(pentru linux/unix) și tastați următoarea comandă pentru a crea un șine aplicație cu baze de date mysql:
$șine noi <your_app_name> -d mysql
Acesta funcționează pentru orice șine de mai sus versiunea 3. Dacă ați creat deja aplicația dvs., atunci puteți face unul din următoarele 2 lucruri:
SAU
dezvoltare:
adaptor: mysql2
baza de date: db_name_name
nume de utilizator: root
parola:
host: localhost
soclu: /tmp/mysql.ciorap
În plus, elimina gem 'sqlite3' de la Gemfile și se adaugă gem 'mysql2'
SAU
Modificări în config/database.yml
adapter: mysql2
database: db_name_name
username: root
password:
host: localhost
socket: /tmp/mysql.sock
Creați aplicație cu opțiunea d
este întotdeauna cel mai bun prieten
utilizare:
de asemenea, rețineți că opțiunile ar trebui să fie dat după numele aplicației
șine și mysql
șine și postgresql
Ar trebui să utilizați comutatorul -D în loc de a -d, deoarece aceasta va genera două aplicații
rails new project_name -D mysql (version 3 and up)
Alternativ, folosiți doar --baza de date
opțiune.
Doar du-te la șine consola si tasteaza:
Dacă doriți să creați un nou șine aplicație puteți seta baza de date folosind -d comutator de genul asta:
Ei întotdeauna ușor pentru a comuta de date mai târziu însă, și folosind sqlite este într-adevăr mai ușor dacă sunteți în curs de dezvoltare pe un Mac.
Pe proiect nou, ușor peasy:
Pe proiect existent, cu siguranta mai complicat. Asta mi-a dat o serie de probleme existente pe șine proiecte. Acest tip de lucrări cu mine:
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
Mai întâi asigurați-vă că mysql gem este instalat, dacă nu? tastați următoarea comandă în consola ta
Decât să creeze noi șine aplicația și setați baza de date mysql ca baza de date implicită tastând următoarea comandă în consola ta
Utilizați următoarea comandă pentru a crea noua aplicație pentru API cu baza de date mysql
adapter: mysql2
encoding: utf8
pool: 5
username: root
password:
socket: /var/run/mysqld/mysqld.sock
baza de date.yml
``
default: &default adaptor: mysql2 codificare: utf-8 piscină: <%= ENV.adu("RAILS_MAX_THREADS") { 5 } %> host: localhost baza de date: database_name nume de utilizator: numele de utilizator parola: secret
dezvoltare: <<: *default
test: <<: *default
producție: <<: *default ``
Gemfile:
``
gem 'mysql2', '>= 0.4.4', '< 0.6.0' ``