DISABILITARE ADBLOCK

ADBlock sta bloccando alcuni contenuti del sito

ADBlock errore

Crea una nuova applicazione Ruby on Rails usando MySQL invece di SQLite

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

DOMANDA

Voglio creare la mia applicazione Rails con MySQL, perché mi piace così tanto. Come posso farlo nell'ultima versione di Rails anziché nello SQLite predefinito?

SOLUZIONE

Se disponi già di un progetto Rails, modifica l'adattatore nel config/database.yml file in mysql e assicurati di specificare un nome utente e una password validi e, facoltativamente, un socket:

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

Quindi, assicurati di modificare il tuo Gemfile per includere mysql2 o activerecord-jdbcmysql-adapter (se usi jruby).

ALTRI SUGGERIMENTI

Normalmente, crei una nuova app Rails usando

rails ProjectName

Per usare MySQL, usa

rails new ProjectName -d mysql

Per Rails 3 puoi usare questo comando per creare un nuovo progetto usando mysql:

$ rails new projectname -d mysql

Vai al terminale e scrivi:

rails new <project_name> -d mysql

Se non hai ancora creato la tua app, vai su cmd (per windows) o sul terminale (per linux / unix) e digita il seguente comando per creare un'applicazione rails con il database mysql:

$rails new <your_app_name> -d mysql

Funziona con qualsiasi cosa sopra le rotaie versione 3. Se hai già creato la tua app, puoi fare una delle 2 cose seguenti:

  1. Crea un'app another_name con il database mysql, vai su cd another_name / config / e copia il file database.yml da questa nuova app. Incollalo nel database.yml dell'app nome_app . Ma assicurati di cambiare i nomi del database e impostare il nome utente / password del tuo database di conseguenza nel file database.yml dopo averlo fatto.

o

  1. Vai su cd nome_app / config / e apri database.yml. Rinomina come segue:

sviluppo:
  adattatore: mysql2
  database: db_name_name
  nome utente: root
  Password:
  host: localhost
  socket: /tmp/mysql.sock

Inoltre, rimuovi la gemma 'sqlite3' dal tuo Gemfile e aggiungi la gemma 'mysql2'

Se si utilizza rails 3 o versione successiva

rails new your_project_name -d mysql

se hai una versione precedente

rails new -d mysql your_project_name

Quindi, prima di creare il tuo progetto, devi trovare la versione delle rotaie. che puoi trovare in

rails -v

rails -d mysql ProjectName

rails new <project_name> -d mysql

o

rails new projectname

Modifiche in config / database.yml

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

Crea applicazione con l'opzione -d

rails new AppName -d mysql

$ rails --help 

è sempre il tuo migliore amico

utilizzo:

$ rails new APP_PATH[options]

nota anche che le opzioni dovrebbero essere fornite dopo il nome dell'applicazione

rotaie e mysql

$ rails new project_name -d mysql

binari e postgresql

$ rails new project_name -d postgresql

Dovresti usare l'opzione -D invece di -d perché genererà due app e mysql senza cartelle di documentazione.

  rails -D mysql project_name  (less than version 3)

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

In alternativa, basta usare l'opzione --database.

Vai alla console di Rails e digita:

rails new YOURAPPNAME -d mysql

In Rails 3, puoi farlo

$rails new projectname --database=mysql

Se si sta creando una nuova applicazione Rails, è possibile impostare il database usando l'opzione -d in questo modo:

rails -d mysql myapp

Tuttavia, è sempre facile cambiare il database in un secondo momento, e l'utilizzo di sqlite è davvero più semplice se si sta sviluppando su un Mac.

Su un nuovo progetto, facile peasy:

rails new your_new_project_name -d mysql

Su progetto esistente, decisamente più complicato. Questo mi ha dato una serie di problemi sui progetti di binari esistenti. Questo tipo di lavoro funziona con me:

# 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 

Per prima cosa assicurati che mysql gem sia installato, in caso contrario? digita il seguente comando nella tua console

gem install mysql2

Quindi crea una nuova app rails e imposta il database mysql come database predefinito digitando il seguente comando nella tua console

rails new app-name -d mysql

Utilizza il seguente comando per creare una nuova app per API con database mysql

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