Chcę stworzyć moją aplikację Railsową z MySQL, ponieważ bardzo mi się to podoba. Jak mogę to zrobić w najnowszej wersji Railsów zamiast domyślnego SQLite?
mysql
ruby-on-rails
ruby
Daniel Broekman
źródło
źródło
gem 'sqlite3'
i dodajgem 'mysql2'
Normalnie stworzyłbyś nową aplikację Railsów używając
Aby korzystać z MySQL, użyj
rails new ProjectName -d mysql
źródło
W przypadku Rails 3 możesz użyć tego polecenia, aby utworzyć nowy projekt za pomocą mysql:
$ rails new projectname -d mysql
źródło
Podejdź do terminala i napisz:
rails new <project_name> -d mysql
źródło
Jeśli jeszcze nie stworzyłeś swojej aplikacji, po prostu przejdź do cmd (dla Windows) lub terminala (dla linux / unix) i wpisz następujące polecenie, aby utworzyć aplikację railsową z bazą danych mysql:
$rails new <your_app_name> -d mysql
Działa dla wszystkich wersji powyżej rails 3. Jeśli masz już utworzoną aplikację, możesz wykonać jedną z dwóch następujących czynności:
LUB
programowanie:
adapter: baza
danych mysql2 : nazwa_bazy_db
nazwa_użytkownika:
hasło roota :
host: host
lokalny gniazdo: /tmp/mysql.sock
Co więcej, usuń gem 'sqlite3' z twojego Gemfile i dodaj gem 'mysql2'
źródło
Jeśli używasz szyn w wersji 3 lub nowszej
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ę dla szyn. które możesz znaleźć
źródło
źródło
rails new <project_name> -d mysql
LUB
rails new projectname
Zmiany w config / database.yml
development: adapter: mysql2 database: db_name_name username: root password: host: localhost socket: /tmp/mysql.sock
źródło
Utwórz aplikację z opcją -d
rails new AppName -d mysql
źródło
$ rails --help
jest zawsze twoim najlepszym przyjacielem
stosowanie:
$ rails new APP_PATH[options]
należy również pamiętać, że opcje należy podać po nazwie aplikacji
rails oraz mysql
$ rails new project_name -d mysql
rails i postgresql
$ rails new project_name -d postgresql
źródło
Powinieneś użyć przełącznika -D zamiast -d, ponieważ wygeneruje on dwie aplikacje i mysql bez folderów z dokumentacją.
rails -D mysql project_name (less than version 3) rails new project_name -D mysql (version 3 and up)
Alternatywnie możesz po prostu skorzystać z
--database
opcji.źródło
Po prostu przejdź do konsoli torów i wpisz:
rails new YOURAPPNAME -d mysql
źródło
W Rails 3 możesz to zrobić
$rails new projectname --database=mysql
źródło
Jeśli tworzysz nową aplikację railsową, możesz ustawić bazę danych za pomocą przełącznika -d w następujący sposób:
Jednak zawsze łatwo jest zmienić bazę danych później, a używanie sqlite jest naprawdę łatwiejsze, jeśli tworzysz na komputerze Mac.
źródło
W nowym projekcie, łatwe peasy:
rails new your_new_project_name -d mysql
Na istniejącym projekcie zdecydowanie trudniejsze. To spowodowało wiele problemów z istniejącymi projektami szyn. Ten rodzaj działa ze mną:
# 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
źródło
Najpierw upewnij się, że mysql gem jest zainstalowany, jeśli nie? niż wpisz następujące polecenie w konsoli
gem install mysql2
Następnie utwórz nową aplikację railsową i ustaw bazę danych mysql jako domyślną bazę danych, wpisując następujące polecenie w konsoli
rails new app-name -d mysql
źródło
Użyj następującego polecenia, aby utworzyć nową aplikację dla interfejsu 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
źródło
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'
źródło
najpierw upewnij się, że sterownik MySQL jest w twoim systemie, jeśli nie uruchom go na swoim 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
źródło