Vra

Ek wil my Rails aansoek met MySQL te skep, want ek wil dit so baie. Hoe kan ek dit in die jongste weergawe van Rails in plaas van die standaard SQLite doen?

Was dit nuttig?

Oplossing

As jy reeds 'n relings projek, verander die adapter in die config/database.yml lêer te mysql en maak seker dat jy 'n geldige gebruikersnaam en wagwoord, spesifiseer en opsioneel, 'n potjie:

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

Volgende, maak seker dat jy wysig jou Gemfile om die mysql2 of activerecord-jdbcmysql-adapter sluit (indien gebruik jruby).

Ander wenke

Normaalweg sou jy 'n nuwe Rails app skep met behulp van

rails ProjectName

Om MySQL gebruik, gebruik

rails new ProjectName -d mysql

Vir Rails 3 jy kan hierdie opdrag gebruik om 'n nuwe projek te skep met behulp van mysql:

$ rails new projectname -d mysql

Gaan na die terminale en skryf:

rails new <project_name> -d mysql

As jy jou program nog nie geskep, gaan net na cmd (vir Windows) of terminale (vir Linux / Unix) en tik die volgende opdrag om 'n relings aansoek met MySQL databasis te skep:

$rails new <your_app_name> -d mysql

Dit werk vir enigiets bo relings weergawe 3. As jy reeds jou program geskep is, dan kan jy een van die 2 volgende dinge doen:

  1. Skep 'n another_name app met MySQL databasis, gaan na cd another_name / config / en kopieer die database.yml lêer van hierdie nuwe app. Plak dit in die database.yml van your_app_name app. Maar verseker om die databasis name en stel gebruikersnaam / wagwoord van jou databasis dienooreenkomstig in die database.yml lêer verander na dit te doen.

OR

  1. Gaan na cd your_app_name / config / en oop database.yml. Hernoem as volg:

ontwikkeling:
  adapter: mysql2
  databasis: db_name_name
  gebruikersnaam: wortel
  wagwoord:
  gasheer: localhost
  socket: /tmp/mysql.sock

Verder, verwyder juweel 'sqlite3' uit jou Gemfile en voeg die juweel 'mysql2'

As jy 'relings 3 of meer weergawe

rails new your_project_name -d mysql

As jy vroeër weergawe

rails new -d mysql your_project_name

Dus, voordat jy jou projek te skep wat jy nodig het om die relings weergawe vind. wat jy kan vind by

rails -v
rails -d mysql ProjectName
rails new <project_name> -d mysql

OR

rails new projectname

Wysigings in config / database.yml

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

Skep aansoek met d opsie

rails new AppName -d mysql
$ rails --help 

is altyd jou beste vriend

gebruik:

$ rails new APP_PATH[options]

ook daarop dat opsies gegee moet word nadat die naam aansoek

relings en mysql

$ rails new project_name -d mysql

relings en postgresql

$ rails new project_name -d postgresql

Jy moet die skakelaar gebruik -D in plaas van d omdat dit twee programme en mysql met geen dokumentasie dopgehou sal genereer.

  rails -D mysql project_name  (less than version 3)

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

Alternatiewelik kan jy net gebruik maak van die opsie --database.

Gaan net na konsole en tipe relings:

rails new YOURAPPNAME -d mysql

In Rails 3, kan jy dit doen

$rails new projectname --database=mysql

As jy die skep van 'n nuwe relings aansoek kan jy die databasis opgestel met behulp van die d skakelaar soos volg:

rails -d mysql myapp

Dit is altyd maklik om jou databasis later al oorskakel, en met behulp van sQLite is regtig makliker as jy die ontwikkeling van 'n Mac.

Op nuwe projek, maklik peasy:

rails new your_new_project_name -d mysql

Op bestaande projek, beslis moeiliker. Dit het my 'n aantal kwessies wat op bestaande spore projekte. Hierdie soort van werke met my:

# 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 

Maak eers seker dat mysql juweel geïnstalleer is, indien nie? as tipe volgende opdrag in jou console

gem install mysql2

As skep nuwe relings inligting en stel MySQL databasis as verstek databasis deur te tik volgende opdrag in jou console

rails new app-name -d mysql

Gebruik volgende opdrag om nuwe artikels vir API met MySQL databasis te skep

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'
Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top