Active Record 入門
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
#contents
** Vagrant 環境構築 [#l6241d1c]
- VirtualBox バージョン: 6.1.8 r137981 (Qt5.6.3)
- Vagrant バージョン: 2.2.9
- Vagrant Box: https://app.vagrantup.com/ubuntu/boxes/xen...
- 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
- 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-buil...
$ sudo apt-get install autoconf bison build-essential li...
$ 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 ~/.r...
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash...
$ 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/ra...
- インストール可能な 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-l...
** 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 を利用してレコードを挿入 [#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:...
2|hayashi|25|2020-05-17 11:14:06.056054|2020-05-17 11:14...
3|hoshi|22|2020-05-17 11:14:06.059109|2020-05-17 11:14:0...
- DB レコード削除
sqlite> delete from users;
sqlite> .exit
終了行:
#contents
** Vagrant 環境構築 [#l6241d1c]
- VirtualBox バージョン: 6.1.8 r137981 (Qt5.6.3)
- Vagrant バージョン: 2.2.9
- Vagrant Box: https://app.vagrantup.com/ubuntu/boxes/xen...
- 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
- 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-buil...
$ sudo apt-get install autoconf bison build-essential li...
$ 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 ~/.r...
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash...
$ 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/ra...
- インストール可能な 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-l...
** 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 を利用してレコードを挿入 [#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:...
2|hayashi|25|2020-05-17 11:14:06.056054|2020-05-17 11:14...
3|hoshi|22|2020-05-17 11:14:06.059109|2020-05-17 11:14:0...
- DB レコード削除
sqlite> delete from users;
sqlite> .exit
ページ名: