ADBLOCK DEAKTIVIEREN

ADBlock blockiert einige Inhalte auf der Website

ADBlock errore

Erstellen Sie eine neue Ruby on Rails-Anwendung mit MySQL anstelle von SQLite

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

Frage

Ich möchte meine Rails-Anwendung mit MySQL erstellen, weil ich es so sehr mögen. Wie kann ich das in der neuesten Version von Rails anstelle der Standard-SQLite tun?

Lösung

Wenn Sie bereits ein Schienen-Projekt haben, ändern Sie den Adapter in der config/database.yml Datei mysql und stellen Sie sicher, einen gültigen Benutzernamen und ein Passwort angeben und optional eine Fassung:

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

Als nächstes stellen Sie sicher, dass Sie bearbeiten Ihre Gemfile die mysql2 aufzunehmen oder Activerecord-jdbcmysql-Adapter (bei Verwendung von jruby).

ANDERE TIPPS

Normalerweise würde erstellen Sie eine neue Rails-Anwendung mit

rails ProjectName

MySQL verwenden möchten, verwenden

rails new ProjectName -d mysql

Für Rails 3 Sie diesen Befehl verwenden können, um ein neues Projekt mit MySQL zu erstellen:

$ rails new projectname -d mysql

Gehen Sie

zum Terminal und schreiben:

rails new <project_name> -d mysql

Wenn Sie Ihre App noch nicht erstellt haben, gehen Sie einfach auf cmd (für Windows) oder Terminal (für Linux / Unix) und geben Sie den folgenden Befehl, um eine Rails-Anwendung mit MySQL-Datenbank zu erstellen:

$rails new <your_app_name> -d mysql

Es funktioniert oben für etwas Schienen Version 3. Wenn Sie Ihre App bereits erstellt haben, dann können Sie eine der folgenden zwei Dinge tun:

  1. Erstellen Sie eine another_name App mit MySQL-Datenbank, gehen Sie zu cd another_name / config / und kopieren Sie die Datei database.yml von dieser neuen App. Fügen Sie ihn in die database.yml von your_app_name App. Aber sicher, die Datenbank-Namen zu ändern und Benutzername / Passwort Ihrer Datenbank entsprechend in der database.yml Datei nach zu tun.

oder

  1. Zum cd your_app_name / config / und offenen database.yml. Benennen Sie wie folgt vor:

Entwicklung:
  Adapter: mysql2
  Datenbank: db_name_name
  Benutzername: root
  Kennwort:
  Host: localhost
  Sockel: /tmp/mysql.sock

Darüber hinaus gem 'sqlite3' aus dem Gemfile entfernen und den Edelstein 'mysql2'

hinzufügen

Wenn Sie Schienen 3 oder höher Version

verwenden
rails new your_project_name -d mysql

, wenn Sie frühere Version

rails new -d mysql your_project_name

Also, bevor Sie Ihr Projekt erstellen müssen Sie die Schienen-Version zu finden. dass Sie mit

finden
rails -v

rails -d mysql ProjectName

rails new <project_name> -d mysql

oder

rails new projectname

Änderungen in config / database.yml

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

Erstellen Anwendung mit Option -d

rails new AppName -d mysql

$ rails --help 

ist immer dein bester Freund

Nutzung:

$ rails new APP_PATH[options]

auch beachten Sie, dass Optionen sollten nach dem Anwendungsnamen angegeben werden

Schienen und mysql

$ rails new project_name -d mysql

Schienen und postgresql

$ rails new project_name -d postgresql

Sie sollten die Schalter verwenden -D statt -d, weil es zwei Anwendungen und mysql ohne Dokumentation Ordner generieren.

  rails -D mysql project_name  (less than version 3)

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

Alternativ verwenden Sie nur die --database Option.

Gehen Sie einfach Konsole und geben zu den Schienen:

rails new YOURAPPNAME -d mysql

In Rails 3, Sie tun können,

$rails new projectname --database=mysql

Wenn Sie eine neue Rails-Anwendung erstellen Sie die Datenbank mit der Option -d wie folgt einstellen:

rails -d mysql myapp

Es ist immer einfach, Ihre Datenbank zu wechseln später aber, und mit SQLite ist wirklich einfacher, wenn Sie auf einem Mac entwickeln.

Ein neues Projekt, einfach peasy:

rails new your_new_project_name -d mysql

Ein bestehendes Projekt, auf jeden Fall schwieriger. Das hat mir eine Reihe von Fragen auf bestehende Schienen Projekte. Diese Art von Arbeiten mit mir:

# 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 

Stellen Sie zunächst sicher, dass mysql gem installiert ist, wenn nicht? als Typ in der Konsole folgenden Befehl

gem install mysql2

als neue Rails-Anwendung erstellen und MySQL-Datenbank als Standarddatenbank, indem Sie in der Konsole folgenden Befehl

rails new app-name -d mysql

Verwenden Sie folgenden Befehl für neue App erstellen API mit MySQL-Datenbank

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