20200804のMySQLに関する記事は3件です。

[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)
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

既存のRailsアプリの開発環境にDockerを導入する手順【Rails, MySQL, Docker】

こんにちは.
今回は, 既存のRailsアプリの開発環境にDockerを導入する手順をまとめてみました.
まだまだ勉強不足ですので, 修正点・改善点等ございましたら, ご指摘いただけますと幸いです.

事前準備

環境

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を追加

add_file.png

既存のRailsアプリのルートディレクトリ直下にDockerfiledocker-compose.ymlを作成します.
以下, それぞれのファイルの中身です.

Dockerfile

Dockerfile
FROM 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.yml
version: '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'

Dockerfiledocker-compose.ymlの中身の詳しい説明はこちらの記事にわかりやすくまとめられていました.

2. config/database.ymlを編集

config/database.yml
default: &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.ymlpasswordhostを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 にアクセスすると無事にアプリが表示されるはずです.

参考

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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は空のままにします.)

Dockerfile
FROM 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 install
docker-compose.yml
version: '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'
Gemfile
source 'https://rubygems.org'
gem 'rails', '~>5.2'

3. コンテナ内にRailsのセットアップを行う

terminal
$ docker-compose run --rm web rails new . --force --database=mysql --skip-bundle --skip-test

webのコンテナ内でrails newを実行します.
今回はテストにRSpecを使用する予定でしたので, --skip-testも追加しています.

4. 作成されたconfig/database.ymlを編集

Railsのセットアップにより作成されたconfig/database.ymlを以下のように編集します.

config/database.yml
default: &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_development

5. コンテナの起動

terminal
$ docker-compose up --build -d
$ docker-compose run --rm web rails db:create

これで, http://localhost:3000 にアクセスすると, Railsのホーム画面が表示されるはずです.

rails_home_pic.png

参考

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む