## contents
#contents

## 環境構築

** Vagrant 環境構築 [#l6241d1c]

- VirtualBox バージョン: 6.1.8 r137981 (Qt5.6.3)
- Vagrant バージョン: 2.2.9
- Vagrant Box: https://app.vagrantup.com/ubuntu/boxes/xenial64/versions/20200513.0.0

- Vagrantfile

 config.vm.box = "ubuntu/xenial64"
 config.vm.box_version = "20200513.0.0"

 config.vm.network "private_network", ip: "192.168.33.10"

$ vagrant up
$ vagrant ssh
- ローカル環境作成&接続

vagrant@ubuntu-xenial:~$ cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.6 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.6 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial
 $ vagrant up
 $ vagrant ssh

$ sudo apt-get update -y
- OS バージョン確認

 vagrant@ubuntu-xenial:~$ cat /etc/os-release
 NAME="Ubuntu"
 VERSION="16.04.6 LTS (Xenial Xerus)"
 ID=ubuntu
 ID_LIKE=debian
 PRETTY_NAME="Ubuntu 16.04.6 LTS"
 VERSION_ID="16.04"
 HOME_URL="http://www.ubuntu.com/"
 SUPPORT_URL="http://help.ubuntu.com/"
 BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
 VERSION_CODENAME=xenial
 UBUNTU_CODENAME=xenial

 $ sudo apt-get update -y

** rbenv インストール [#sd5cc166]

- [[推奨関連パッケージ:https://github.com/rbenv/ruby-build/wiki]]をインストール

$ sudo apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libdb-dev
 $ sudo apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libdb-dev

$ sudo apt-get install -y gcc g++ make
 $ sudo apt-get install -y gcc g++ make

- rbenv, ruby-build インストール

 $ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
 $ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
 $ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
 $ source ~/.bash_profile
 $ rbenv init
 # Load rbenv automatically by appending
 # the following to ~/.bash_profile:
 
 eval "$(rbenv init -)"

 $ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
 $ source ~/.bashrc
 $ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash

- インストール可能な Ruby バージョン一覧確認

 $ rbenv install -l

- Ruby 2.7.1 (最新安定版) インストール

 $ rbenv install 2.7.1
 $ rbenv global 2.7.1
 $ ruby -v
 ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux]

** Active Record インストール [#jcfbe14c]

 $ gem install activerecord -N

** SQLite インストール [#i6be5760]

 $ gem install sqlite3 -N

## データベースを作成
** データベースを作成 [#u6d07537]

- import.sql ファイル作成

 $ cat import.sql
 create table users (
   id integer primary key,
   name text,
   age integer,
   created_at,
   updated_at
 );

- SQLite データベース作成

 $ sqlite3 myapp.db < import.sql
 $ sqlite3 myapp.db
 sqlite> .schema
 CREATE TABLE users (
   id integer primary key,
   name text,
   age integer,
   created_at,
   updated_at
 );
 sqlite> .exit

## Active Record を利用してレコードを挿入
** Active Record を利用してレコードを挿入 [#c80c8640]

- main.rb ファイル作成

 $ cat main.rb
 require 'active_record'
 require 'pp'
 require "active_support/all"
 
 Time.zone_default = Time.find_zone! 'Tokyo'
 ActiveRecord::Base.default_timezone = :local
 
 ActiveRecord::Base.establish_connection(
   "adapter" => "sqlite3",
   "database" => "./myapp.db"
 )
 
 class User < ActiveRecord::Base
 end
 
 # insert
 
 user = User.new
 user.name = "tanaka"
 user.age = 23
 user.save
 
 user = User.new(name: "hayashi", age: 25)
 user.save
 
 user = User.create(name: "hoshi", age: 22)

- main.rb 実行 (レコード挿入)

 $ ruby main.rb

- DB レコード確認

 $ sqlite3 myapp.db
 sqlite> select * from users;
 1|tanaka|23|2020-05-17 11:14:06.044634|2020-05-17 11:14:06.044634
 2|hayashi|25|2020-05-17 11:14:06.056054|2020-05-17 11:14:06.056054
 3|hoshi|22|2020-05-17 11:14:06.059109|2020-05-17 11:14:06.059109

- レコード削除
- DB レコード削除

 sqlite> delete from users;
 sqlite> .exit



トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS