Tep3-onk

提供: wikipokpok
2022年9月14日 (水) 16:39時点におけるShudo (トーク | 投稿記録)による版 (insert エラー)
移動先: 案内検索

generate

$ rails generate scaffold User name:string email:string password_digest:string remember_digest:string admin:boolean activation_digest:string activated:boolean activated_at:datetime reset_digest:string reset_sent_at:datetime
$ rails generate scaffold User name:string email:string password_digest:string remember_digest:string role:integer activation_digest:string activated:boolean activated_at:datetime reset_digest:string reset_sent_at:datetime
% rails generate scaffold Note content:string user:references kind:integer meeting_time:integer role:integer line:integer
% rails generate scaffold Client user:references note:references content:string list:integer line:integer memo:text
% rails generate scaffold Other user:references note:references client:references name:string yomi:string client_name:boolean line:integer memo:text generation:string
$ rails generate scaffold Post content:text user:references picture:string
$ rails generate model Relationship follower_id:integer followed_id:integer
$ rails db:migrate RAILS_ENV=production
$ bin/dev
$ rails generate controller StaticPages home help about contact

エラー

ActionView::Template::Error (The asset "tailwind.css" is not present in the asset pipeline.

config/envitonments/production.rb

config.assets.compile = true

db:rollback

% rails db:migrate:status
% rails db:rollback STEP=3
% rails db:migrate
$ rails db:migrate:down VERSION=20200504051127
$ rails db:migrate:up VERSION=20200504051127

postgres

$ heroku pg:backups:capture
$ heroku pg:backups:download
$ createdb mydb
$ pg_restore --verbose --clean --no-acl --no-owner -h localhost -U myuser -d mydb latest.dump
=# select count(*) from clients;
 count 
-------
  4209
(1 row)

=# select distinct on (jiin_id) * from clients;

テーブルをコピーしてデータを加工する

=# CREATE TABLE jq_clients AS SELECT * FROM clients where jiin_id = 1;
SELECT 3066
=# ALTER TABLE jq_clients ADD COLUMN userid uuid;
=# update jq_clients SET userid = '44f47a1e-2ccf-4213-bac5-aa62c5f3c141';
UPDATE 3066

=# ALTER TABLE jq_clients ADD COLUMN jiinid uuid;
=# update jq_clients SET jiinid = 'd23ae9b5-5a74-4e95-9933-0e710b13401a';
UPDATE 3066
=# update jq_clients SET ie_id = null;
UPDATE 3066
=# COPY (SELECT userid,jiinid,ie_id,name,yomi,nusi,each_order,memo,generation,created_at,updated_at FROM jq_clients WHERE jiin_id = 1) TO '/Users/jq/rails_app_tepnote/jq_clients.csv' WITH CSV HEADER;
COPY 3066

table dump

ALTER TABLE users RENAME TO users_old;
% pg_dump --username=jq --table jq_clients heroku_dump > old_other.sql
% psql --username=jq tep5_development < old_other.sql
SET
SET
SET
SET
SET
 set_config 
------------
 
(1 row)

SET
SET
SET
SET
SET
SET
CREATE TABLE
ALTER TABLE
COPY 3066

ie_id 重複修正

重複チェック

=# SELECT ie_id, COUNT(ie_id)
FROM clients_old
where nusi = true GROUP BY ie_id
HAVING COUNT(ie_id) > 1
ORDER BY ie_id
;
 ie_id | count 
-------+-------
  2090 |     2
  2129 |     2
  2167 |     2

=# select * from clients_old where ie_id = 2090;
=# update clients_old set ie_id = 6000 where ie_id = 2090 and jiin_id > 1;

insert

=# insert into users
(
    id, name, email, created_at, updated_at, password_digest, remember_digest, activation_digest, activated, activated_at, reset_digest, reset_sent_at
)
select
    id, name, email, created_at, updated_at, password_digest, remember_digest, activation_digest, activated, activated_at, reset_digest, reset_sent_at
from
    users_old;
INSERT 0 17
=# insert into notes
(
    id, content, user_id, created_at, updated_at, kind              
)
select
    id, jiin_name, user_id, created_at, updated_at, kind              
from
    jiins;
INSERT 0 14

=# insert into clients
(
    id, user_id, note_id, content, line, created_at, updated_at
)
select
    ie_id, user_id, jiin_id, name, table_order,  created_at, updated_at
from
    clients_old
where
    nusi = true;
INSERT 0 1293

=# insert into others
(
    id, name, yomi, client_id, client_name, user_id, note_id, created_at, updated_at, memo, line, generation
)
select
    id, name, yomi, ie_id, nusi, user_id, jiin_id, created_at, updated_at, memo, each_order, generation
from
    clients_old;

insert エラー

% rails db:migrate:status
% rails db:rollback STEP=2
% rails db:migrate:down VERSION=
t.references :client, null: false, foreign_key: true  -->  t.references :client, foreign_key: true
% rails db:migrate:up VERSION=
=# delete from clients_old where id in (4028,3911,3912,2998,3007,4359);

指定行を作る

=# INSERT INTO others (user_id, note_id, client_id, created_at, updated_at)
 SELECT 
     '44f47a1e-2ccf-4213-bac5-aa62c5f3c141', 'd23ae9b5-5a74-4e95-9933-0e710b13401a', '6d7d3f62-ebc8-4de1-bc46-06287a19d8d1', '2022-09-12 19:11:46.986872', '2022-09-12 19:11:46.986872'
 FROM                         
     generate_series(1,3066) ;
INSERT 0 3066

update

=# UPDATE others set 
name = atab.name, yomi = atab.yomi, client_name = atab.nusi, line = atab.each_order, memo = atab.memo, generation = atab.generation, created_at = atab.created_at, updated_at = atab.updated_at
FROM (SELECT name, yomi, nusi, each_order, memo, generation, created_at, updated_at FROM jq_clients) atab
;
UPDATE 3066

ローカル

rubyの確認

プロジェクトディレクトリに移動

% cd rails_app_tepnote/3tep

カレントディレクトリでrubyのバージョン確認

% rbenv version            
2.7.1 (set by /Users/jq/.rbenv/version)

使用できるrubyのバージョン確認

% rbenv versions
  system
  2.6.6
* 2.7.1 (set by /Users/jq/.rbenv/version)
  2.7.4
  2.7.5
  3.0.0
  3.1.2

カレントディレクトリで使う rubyのバージョンを指定する

% rbenv local 3.1.2

確認 2.7.1から3.1.2に変わった

% rbenv version    
3.1.2 (set by /Users/jq/rails_app_tepnote/3tep/.ruby-version)

% rbenv versions
  system
  2.6.6
  2.7.1
  2.7.4
  2.7.5
  3.0.0
* 3.1.2 (set by /Users/jq/rails_app_tepnote/3tep/.ruby-version)

railsの確認

カレントディレクトリで確認 無かったのでインストールする

% rails -v
rbenv: rails: command not found
% gem install rails
% rails -v         
Rails 7.0.3.1

bundlerの確認

% gem search ^bundler$ --all
bundler (2.3.21, 2.3.20, 2.3.19, 2.3.18, 2.3.17,.......
% gem list bundler

*** LOCAL GEMS ***

bundler (2.2.17, default: 2.1.4)

バージョンを指定してインストール

% gem install bundler -v 2.3.21

確認

% gem list bundler             

*** LOCAL GEMS ***

bundler (2.3.21, 2.2.17, default: 2.1.4
% bundle -v
Bundler version 2.3.21

postgresqlの確認

% psql --version
psql (PostgreSQL) 14.5 (Homebrew)

new

% rails new tep30 -d postgresql --css tailwind または rails new tep30 -d postgresql --css bootstrap
% cd tep30
% bundle install
% rails db:create
% rails db:migrate
% rails s

daisyui

tailwind css UIコンポーネント インストール

% yarn add daisyui

コピー

% scp -r --exclude-from='exclude-file.txt' ~/rails_app_tepnote/3tep/tep30 xxx:/home/xxx

ホスト

確認

$ ruby -v
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]
$ rails -v
Rails 7.0.3.1
$ bundle -v
Bundler version 2.3.21
$ psql --version

new

$ rails new tep30 -d postgresql --css bootstrap または rails new tep30 --css tailwind -d postgresql

database.yml username:などを確認する (2箇所)

$ bundle install --without test development
$ rails db:create RAILS_ENV=production
$ rails db:migrate RAILS_ENV=production

daisyuiをインストール

$ yarn add daisyui

config/tailwind.config.js

plugins: [
    require('@tailwindcss/forms'),
    require('@tailwindcss/aspect-ratio'),
    require('@tailwindcss/typography'),
    require('daisyui'),    // ← 追記する
  ],

app/views/layouts/application.html.erb

<html data-theme="light">  // テーマを選ぶ


同期

% rsync -r ~/rails_app_tepnote/4tep/ host:/home/tep/

除外するファイルをまとめる

exclude-file.txt
    production.rb
    database.yml
% rsync -r --exclude-from='exclude-file.txt' ~/rails_app_tepnote/tep5/ jq:/home/jq/tep5/


$ bundle install  --without test development

database.yml username:などを確認する (2箇所)

$ rails db:create RAILS_ENV=production
または
$ rails db:reset RAILS_ENV=production

エラーのとき

ArgumentError: Missing `secret_key_base` for 'production' environment, set this string with `bin/rails credentials:edit`

master.key credentials.yml.enc 削除して作り直す

$ EDITOR="vi" bin/rails credentials:edit
$ rails db:migrate RAILS_ENV=production

エラー

ActionView::Template::Error (The asset "tailwind.css" is not present in the asset pipeline.

config/envitonments/production.rb

config.assets.compile = true

daisyuiをインストール

$ yarn add daisyui