「Tep3-onk-2」の版間の差分

提供: wikipokpok
移動先: 案内検索
(generate)
(UUIDを有効にする)
29行目: 29行目:
 
app/views/layouts/application.html.erb
 
app/views/layouts/application.html.erb
 
  <html data-theme="light">  // テーマを選ぶ
 
  <html data-theme="light">  // テーマを選ぶ
 +
 +
== データベース移行 ==
 +
Herokuからdumpしてローカルにheroku_dumpデータベースを新設しリストアする
 +
 +
作り直すアプリはデータベース構造を変えるのでテーブルごとにダンプ・リストアする
 +
 +
=== データ数確認 ===
 +
<nowiki>=# select count(*) from clients ;
 +
count
 +
-------
 +
  5067
 +
(1 row)</nowiki>
 +
 +
=== heroku_dumpデータベースでテーブ名を変える ===
 +
 +
=# ALTER TABLE users RENAME TO users_old;
 +
=# ALTER TABLE clients RENAME TO clients_old;
 +
 +
=== 旧テーブルダンプ ===
 +
% pg_dump --username=jq --table users_old heroku_dump > users_old.sql
 +
 +
=== 旧テーブルを新アプリのデータベースにリストア ===
 +
<nowiki>% psql --username=jq tep5_development < ../old_users.sql
 +
SET
 +
SET
 +
SET
 +
SET
 +
SET
 +
set_config
 +
------------
 +
 +
(1 row)
 +
 +
SET
 +
SET
 +
SET
 +
SET
 +
SET
 +
SET
 +
CREATE TABLE
 +
ALTER TABLE
 +
CREATE SEQUENCE
 +
ALTER TABLE
 +
ALTER SEQUENCE
 +
ALTER TABLE
 +
COPY 17
 +
setval
 +
--------
 +
    51
 +
(1 row)
 +
 +
ERROR:  relation "users_pkey" already exists
 +
ERROR:  relation "index_users_on_email" already exists
 +
CREATE INDEX</nowiki>
 +
 +
 +
 +
  
 
== UUIDを有効にする ==
 
== UUIDを有効にする ==

2022年9月17日 (土) 14:59時点における版

準備

プロジェクトディレクトリ作成
移動
バージョン確認

new

% rails new . -d postgresql --css tailwind
% bundle install
% rails db:create
または
% rails db:reset 
% rails db:migrate
% rails server

daisyui

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

% 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">  // テーマを選ぶ

データベース移行

Herokuからdumpしてローカルにheroku_dumpデータベースを新設しリストアする

作り直すアプリはデータベース構造を変えるのでテーブルごとにダンプ・リストアする

データ数確認

=# select count(*) from clients ;
 count 
-------
  5067
(1 row)

heroku_dumpデータベースでテーブ名を変える

=# ALTER TABLE users RENAME TO users_old;
=# ALTER TABLE clients RENAME TO clients_old;

旧テーブルダンプ

% pg_dump --username=jq --table users_old heroku_dump > users_old.sql

旧テーブルを新アプリのデータベースにリストア

% psql --username=jq tep5_development < ../old_users.sql 
SET
SET
SET
SET
SET
 set_config 
------------
 
(1 row)

SET
SET
SET
SET
SET
SET
CREATE TABLE
ALTER TABLE
CREATE SEQUENCE
ALTER TABLE
ALTER SEQUENCE
ALTER TABLE
COPY 17
 setval 
--------
     51
(1 row)

ERROR:  relation "users_pkey" already exists
ERROR:  relation "index_users_on_email" already exists
CREATE INDEX



UUIDを有効にする

% rails generate migration enable_extension_for_uuid

migrate編集

class EnableExtensionForUuid < ActiveRecord::Migration[7.0]
  def change                   
    enable_extension 'pgcrypto' unless extension_enabled?('pgcrypto')
  end
end
% rails db:migrate

デフォルトのキーをuuidにする

config/initializers/generators.rb 作成

Rails.application.config.generators do |g|
  g.orm :active_record, primary_key_type: :uuid
end

generate

$ 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

migrationファイルを確認 indexを書く 以下同じ

% rails generate scaffold Note user:references content:string kind:integer meeting_time:integer role:integer note_line:integer
% rails generate scaffold List user:references note:references content:string list_line:integer
% rails generate scaffold Client user:references note:references list:references content:string client_line:integer memo:text
% rails generate scaffold Other user:references note:references client:references name:string kana:string client_name:boolean other_line:integer memo:text generation:string
やり直し
% rails destroy scaffold User .................
$ 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