- 投稿日:2020-08-04T15:56:32+09:00
[SQL]SQLでのデータベース・テーブル作成
SQLとは?
「SQL(エスキューエル)」は、データベース内のデータを操作するプログラム言語です。
データベースへのデータ挿入や参照の際は、SQLを介して行うのが一般的です。僕が学習しているRailsでは、SQLを意識することなく、データベースにデータを挿入したり参照できるように設計されています。
代わりにRails内部で、SQLを用いてデータベースへのデータ挿入や検索、削除などの操作を行っています。データベースを作成
「CREATE DATABASE データベース名」でデータベースを作成できます。
mysql> CREATE DATABASE Test; Query OK, 1 row affected (0.18 sec)「SHOW DATABASES」でデータベースが作成されたことを確認。
このデータベースの中にテーブルを作成していきます。mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | Test | | innodb | | mysql | | performance_schema | | sys | +--------------------+ 6 rows in set (0.16 sec)データベースを指定
「USE データベース名」で指定。
mysql> USE Test; Database changedテーブルを作成
Userテーブルを以下のように作成したいと思います。
「CREATE TABLE テーブル名(カラム名 データ型, カラム名 データ型);」でテーブル作成が可能です。
「Query OK」と出力されると成功です。
項目内容 カラム名 カラム型 ID id INT 名前 name VARCHAR(100) mysql> CREATE TABLE user (id INT, name VARCHAR(100)); Query OK, 0 rows affected (0.78 sec)テーブルを確認
「SHOW TABLES」でテーブル一覧を確認できます。
mysql> SHOW TABLES; +--------------------------+ | Tables_in_Test | +--------------------------+ | users | +--------------------------+ 1 row in set (0.18 sec)「DESC テーブル名」でテーブルのカラムを確認できます。
mysql> DESC user; +------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+--------------+------+-----+---------+-------+ | id | int(11) | YES | | NULL | | | name | varchar(100) | YES | | NULL | | +------------+--------------+------+-----+---------+-------+ 2 rows in set (0.17 sec)
- 投稿日:2020-08-04T08:33:46+09:00
既存のRailsアプリの開発環境にDockerを導入する手順【Rails, MySQL, Docker】
こんにちは.
今回は, 既存のRailsアプリの開発環境にDockerを導入する手順をまとめてみました.
まだまだ勉強不足ですので, 修正点・改善点等ございましたら, ご指摘いただけますと幸いです.事前準備
- Docker-for-macのインストール
- 既存のRailsアプリ(今回は以前作成した簡単な家計簿アプリを使用します.)
環境
Ruby:2.5.3
Rails:5.2.4.3
MySQL:5.6
Docker:19.03.8
docker-compose:1.25.4手順
1. ルートディレクトリにDockerfile,docker-compose.ymlを追加
既存のRailsアプリのルートディレクトリ直下に
Dockerfile
とdocker-compose.yml
を作成します.
以下, それぞれのファイルの中身です.Dockerfile
DockerfileFROM ruby:2.5.3 RUN apt-get update && apt-get install -y \ build-essential \ nodejs WORKDIR /kakeibo COPY Gemfile Gemfile.lock /kakeibo/ RUN bundle install
FROM ruby:2.5.3
の部分についてはアプリのRubyのバージョンに合わせる.RUN apt-get update && apt-get install -y ~
で必要なパッケージをインストールする.WORKDIR /kakeibo
でコンテナ内にフォルダを作成.COPY Gemfile Gemfile.lock /kakeibo/
でコンテナ内にGemfileとGemfile.lockをコピーした後,bundle install
を実行する.docker-compose.yml
docker-compose.ymlversion: '3' volumes: mysql-data: services: web: build: . command: bundle exec rails s -p 3000 -b '0.0.0.0' ports: - '3000:3000' volumes: - '.:/kakeibo' tty: true stdin_open: true depends_on: - db links: - db db: image: mysql:5.6 volumes: - 'mysql-data:/var/lib/mysql' environment: - 'MYSQL_ROOT_PASSWORD=password'
Dockerfile
とdocker-compose.yml
の中身の詳しい説明はこちらの記事にわかりやすくまとめられていました.2. config/database.ymlを編集
config/database.ymldefault: &default adapter: mysql2 encoding: utf8 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: root password: password host: db development: <<: *default database: kakeibo_development
config/database.yml
のpassword
とhost
をdocker-compose.ymlで設定した値に合わせます.3. コンテナ起動
terminal$ docker-compose build $ docker-compose up -d $ docker-compose exec web rails db:create $ docker-compose exec web rails db:migrateこれで http://localhost:3000 にアクセスすると無事にアプリが表示されるはずです.
参考
- 既存のrailsプロジェクトをDockerで開発する手順
- 既存のRailsアプリにDockerを導入する手順
- Dockerで既存アプリの開発環境を作成【Ruby2.6 + Rails5.2 + Mysql5.7】
- [Rails] DockerでRails + MySQLの開発環境をつくる手順
- Docker初心者がRails + PostgreSQL or MySQLで仮想環境構築した手順を丁寧にまとめる
- #Linux #Ubuntu #docker #Dockerfile のこれは何? apt-get install --no-install-recommends
- 『Dockerfile のベストプラクティス』
- 投稿日:2020-08-04T08:32:14+09:00
Railsアプリの開発環境をDockerで構築する手順【Rails, MySQL, Docker】
こんにちは.
今回は, Railsアプリの開発環境をDockerで構築する手順をまとめてみました.
まだまだ勉強不足ですので, 修正点・改善点等ございましたら, ご指摘いただけますと幸いです.事前準備
環境
Ruby: 2.5.8
Rails: 5.2.4.3
MySQL: 5.7.31
Docker: 19.03.8
Docker Compose: 1.25.4手順
1. プロジェクトのルートディレクトリを作成
terminal$ mkdir test-app初めに, プロジェクトのルートディレクトリを作成します.
2. ルートディレクトリ直下にファイルを追加
terminal$ cd test-app $ touch Dockerfile docker-compose.yml Gemfile Gemfile.lock作成したルートディレクトリの直下に
Dockerfile
,docker-compose.yml
,Gemfile
,Gemfile.lock
の4つのファイルを作成します.
それぞれのファイルの中身は以下のようになります. (Gemfile.lockは空のままにします.)DockerfileFROM ruby:2.5 RUN apt-get update && apt-get install -y \ build-essential \ nodejs WORKDIR /test-app COPY Gemfile Gemfile.lock /test-app/ RUN bundle installdocker-compose.ymlversion: '3' volumes: mysql-data: services: web: build: . command: bundle exec rails s -p 3000 -b '0.0.0.0' ports: - '3000:3000' volumes: - '.:/test-app' tty: true stdin_open: true depends_on: - db links: - db db: image: mysql:5.7 volumes: - 'mysql-data:/var/lib/mysql' environment: - 'MYSQL_ROOT_PASSWORD=test-app'Gemfilesource 'https://rubygems.org' gem 'rails', '~>5.2'3. コンテナ内にRailsのセットアップを行う
terminal$ docker-compose run --rm web rails new . --force --database=mysql --skip-bundle --skip-testwebのコンテナ内で
rails new
を実行します.
今回はテストにRSpecを使用する予定でしたので,--skip-test
も追加しています.4. 作成されたconfig/database.ymlを編集
Railsのセットアップにより作成された
config/database.yml
を以下のように編集します.config/database.ymldefault: &default adapter: mysql2 encoding: utf8 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: root password: test-app #docker-compose.ymlのMYSQL_ROOT_PASSWORDの値を設定する host: db #docker-compose.ymlのservice名と合わせる development: <<: *default database: test-app_development5. コンテナの起動
terminal$ docker-compose up --build -d $ docker-compose run --rm web rails db:createこれで, http://localhost:3000 にアクセスすると, Railsのホーム画面が表示されるはずです.
参考