20210127のMySQLに関する記事は2件です。

【環境構築】Docker rails 備忘録

Docker使ってrailsでアプリを作成した際の備忘録

手順1

ファイル作成
既にDockerをインストールしているので
使用しているディレクトリの配下に任意の名前でディレクトリを作成し
以下作成したディレクトリにファイル準備。
・Gemfile
・Gemfile.lock
・Dockerfile
・docker-compose.yml
※ターミナルでのファイル作成コマンド:touch XXXXXX(※XXXに作成するファイル名)

手順2

作成したファイルの内容を編集

Gemfile
source 'https://rubygems.org'
gem 'rails', 5.2.2
Dockerfile
FROM ruby:2.5
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs
RUN mkdir /sample
WORKDIR /sample

COPY Gemfile /sample/Gemfile
COPY Gemfile.lock /sample/Gemfile.lock

RUN bundle install
COPY . /sample
docker-compose.yml
version: '3'

services:
    db:
        image: mysql:5.7
        environment:
            MYSQL_USER: root
            MYSQL_ROOT_PASSWORD: password
        ports:
            - "3306:3306"
        volumes:
            - ./db/mysql/volumes:/var/lib/mysql

    web:
        build: .
        command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
        volumes:
            - .:/sample
            - gem_data:/usr/local/bundle
        ports:
            - 3000:3000
        depends_on:
            - db 
        tty: true
        stdin_open: true

volumes:
  gem_data:

手順3

Dockerコマンドを実行し、railsアプリケーションを作成
※Dockerを起動していない場合は次のコマンドを実行:
docker run -d -p 80:80 docker/getting-started

・rails new コマンド(DBにmysqlを指定)
docker-compose run web rails new . --force --database=mysql --skip-bundle

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

?yawacom - ?どんな値がデータベースに入るのか

2021/01/27現在編集中

どんな値がデータベースに入るのか

アプリ内でどんな値が必要なのか,その値はどんな状態であるべきなのかをmiroに書き出しました.
スクリーンショット 2021-01-27 14.57.27.png

テーブルは

  • ユーザ情報の格納:userテーブル
  • やわらかさの格納:yawarakasaテーブル
  • アクセストークンの格納:access tokenテーブル

の3つを用意します.
access tokenはログイン状態の保持のために作成しています.

準備

まずログインしてからデータベースを作ります.

$ mysql -uroot    # rootでログイン
mysql> create database yawarakasa;

これでyawarakasaという名前のデータベースが作られました.
確認してみましょう.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| yawarakasa         |
+--------------------+

どのデータベースを使うのかを指定します.

mysql> use yawarakasa

テーブル作成

テーブルをMySQLで作って行きます.
まずユーザテーブルです.

create_table.sql
use yawarakasa;

create table user(
  # auto_incrementは連番を自動で入れてくれるやつ
  # primary keyにはすでにユニーク制約が入っとる
  id int(255) not null primary key auto_increment,
  user_name varchar(255) not null,
  password varchar(255) not null,
  sex char(1) not null,
  unique(user_name)
);

次はやわらかさテーブルです.このファイルに追記で書いていきます.

create_table.sql
create table yawarakasa(
  # yawarakasaとしてのプライマリーキーもあるとべんり
  # primary keyは1行目に書かないとシンタックスエラー
  id int(255) not null primary key auto_increment,
  user_id int(255) not null references user(id),
  yawarakasa int(255) not null,
  year int(4) not null,
  month int(2) not null,
  day int(2) not null
);

最後にアクセストークンテーブルです.これもファイルに追記で買いていきます.

create_table.sql
create table access_token(
  user_id int(255) not null references user(id),
  access_token varchar(255) not null,
  # 古いアクセストークンでアクセスできなくするために最新トークン以外消すとかするといいかも?
  # デフォルトで現在時刻入れとく
  created_at datetime default current_timestamp not null
);

以上のSQLをファイル実行してテーブルを作成します.ファイル名はcreate_table.sqlにしました.
下記コマンドを行うことでファイルのSQL文を実行できます.

mysql> source create_table.sql
もしくは
mysql> \. create_table.sql

作られたかどうかを確認します.

mysql> show tables;
+----------------------+
| Tables_in_yawarakasa |
+----------------------+
| access_token         |
| user                 |
| yawarakasa           |
+----------------------+

テーブルが3つ作成されました!?

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