programing

SQLite 대신 MySQL을 사용하여 새 Ruby on Rails 응용 프로그램 만들기

coolbiz 2022. 9. 21. 23:14
반응형

SQLite 대신 MySQL을 사용하여 새 Ruby on Rails 응용 프로그램 만들기

MySQL을 사용하여 Rails 어플리케이션을 만들고 싶습니다.너무 좋아서기본 SQLite가 아닌 최신 버전의 Rails에서 이를 수행하려면 어떻게 해야 합니까?

일반적으로 새로운 Rails 앱을 만듭니다.

rails ProjectName

MySQL을 사용하려면

rails new ProjectName -d mysql

레일 프로젝트가 이미 있는 경우 에서 어댑터를 변경합니다.config/database.yml까지 줄서다.mysql유효한 유저명과 패스워드를 지정하고, 옵션으로 소켓을 지정해 주세요.

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

다음으로 mysql2 또는 activerecord-jdbcmysql-adapter(jruby를 사용하는 경우)를 포함하도록 Gem 파일을 편집합니다.

레일 3의 경우 다음 명령을 사용하여 mysql을 사용하여 새 프로젝트를 작성할 수 있습니다.

$ rails new projectname -d mysql

단말기에 접속하여 다음과 같이 기입합니다.

rails new <project_name> -d mysql

아직 앱을 생성하지 않은 경우 cmd(윈도우즈의 경우) 또는 terminal(linux/unix의 경우)로 이동한 후 다음 명령을 입력하여 mysql 데이터베이스를 사용하여 레일 애플리케이션을 생성합니다.

$rails new <your_app_name> -d mysql

이 기능은 레일 버전 3 이상의 모든 경우에 작동합니다.앱을 이미 만든 경우 다음 두 가지 작업 중 하나를 수행할 수 있습니다.

  1. mysql 데이터베이스를 사용하여 other_name 앱을 만들고 cd another_name/config/로 이동하여 이 새로운 앱에서 database.yml 파일을 복사합니다.당신의_app_name 앱의 database.yml에 붙여넣습니다.단, 데이터베이스 이름을 변경하고 데이터베이스 사용자 이름/비밀번호를 database.yml 파일에서 적절하게 설정하십시오.

또는

  1. cd your_app_name/config/로 이동하여 database.yml을 엽니다.다음과 같이 이름을 바꿉니다.

개발:
어댑터: mysql2
데이터베이스: db_name_name
사용자 이름: root
패스워드:
호스트: localhost
소켓: /tmp/mp.disc.disc

또한 Gem 파일에서 gem 'sqlite3'을 삭제하고 gem 'mysql2'를 추가합니다.

레일 3 이상 버전을 사용하는 경우

rails new your_project_name -d mysql

이전 버전이 있는 경우

rails new -d mysql your_project_name

따라서 프로젝트를 작성하기 전에 레일 버전을 찾아야 합니다.에서 찾을 수 있는

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

또는

rails new projectname

구성/데이터베이스의 변경.yml

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

-d 옵션을 사용하여 응용 프로그램 생성

rails new AppName -d mysql
$ rails --help 

항상 당신의 가장 친한 친구입니다.

사용방법:

$ rails new APP_PATH[options]

또한 응용 프로그램 이름 뒤에 옵션을 지정해야 합니다.

레일 및 mysql

$ rails new project_name -d mysql

레일 및 포스트그레스ql

$ rails new project_name -d postgresql

d 대신 d 스위치를 사용하면 문서 폴더가 없는 2개의 앱과 mysql이 생성되므로 -D를 사용해야 합니다.

  rails -D mysql project_name  (less than version 3)

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

그냥 '먹다'를하세요.--database★★★★★★ 。

Rails 3에서는 다음과 같은 작업을 수행할 수 있습니다.

$rails new projectname --database=mysql

새 레일 애플리케이션을 작성하는 경우 -d 스위치를 사용하여 다음과 같이 데이터베이스를 설정할 수 있습니다.

rails -d mysql myapp

그러나 나중에 데이터베이스를 전환하는 것은 항상 쉬우며 Mac에서 개발 중인 경우에는 sqlite를 사용하는 것이 더 쉽습니다.

레일 콘솔로 이동하여 다음과 같이 입력합니다.

rails new YOURAPPNAME -d mysql

새로운 프로젝트에서는 쉬운 작업:

rails new your_new_project_name -d mysql

기존 프로젝트에서는 확실히 더 까다롭습니다.이로 인해 기존 철도 프로젝트에 많은 문제가 발생하였습니다.이런 게 나한테는 잘 통한다.

# 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 

먼저 mysql gem이 설치되어 있는지 확인합니다. 설치되어 있지 않은 경우 콘솔에 following 명령을 입력합니다.

gem install mysql2

콘솔에 다음 명령을 입력하여 새 레일 앱을 만들고 mysql 데이터베이스를 기본 데이터베이스로 설정합니다.

rails new app-name -d mysql

mysql 데이터베이스로 API용 새 앱을 만들려면 다음 명령을 사용합니다.

rails new <appname> --api -d mysql


  adapter: mysql2
  encoding: utf8
  pool: 5
  username: root
  password: 
  socket: /var/run/mysqld/mysqld.sock

데이터베이스입니다.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'

Ubuntu 또는 Debian distro를 사용하는 경우 단말기에서 실행하지 않으면 먼저 MySQL 드라이버가 시스템에 있는지 확인해야 합니다.

sudo apt-get install mysql-client libmysqlclient-dev

그리고 이것을 당신의 Gemfile에 추가합니다.

gem 'mysql2', '~> 0.3.16'

프로젝트의 루트 디렉토리에서 실행합니다.

bundle install

그 후 이전 답변에 따라 mysql 설정을 config/sysql.yml에 추가할 수 있습니다.

언급URL : https://stackoverflow.com/questions/3585/create-a-new-ruby-on-rails-application-using-mysql-instead-of-sqlite

반응형