「PostgreSQLでよくやること」の版間の差分
提供: オレッジベース
(→dump/restore) |
(→schema) |
||
111行目: | 111行目: | ||
<syntaxhighlight lang="sql"> | <syntaxhighlight lang="sql"> | ||
# CREATE SCHEMA <SCHEMA_NAME>; | # CREATE SCHEMA <SCHEMA_NAME>; | ||
+ | </syntaxhighlight> | ||
+ | === 複製 === | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | $ pg_dump -n <SOURCE_SCHEMA_NAME> <DATABASE_NAME> > <FILE_NAME> | ||
+ | </syntaxhighlight> | ||
+ | <syntaxhighlight lang="sql"> | ||
+ | # ALTER SCHEMA <NEW_SCHEMA_NAME> RENAME TO <SOURCE_SCHEMA_NAME>; | ||
+ | </syntaxhighlight> | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | $ psql <DATABASE_NAME> < <FILE_NAME> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== 名前変更 === | === 名前変更 === |
2020年1月10日 (金) 11:13時点における版
目次
dump/restore
dump
$ pg_dump <DATABASE_NAME> > <FILE_NAME>
or
$ pg_dump -Fc <DATABASE_NAME> > <FILE_NAME>
or schema指定
$ pg_dump -n <SCHEMA> <DATABASE_NAME> > <FILE_NAME>
restore
$ psql <DATABASE_NAME> < <FILE_NAME>
or pg_dumpでFcやFtをつけてたらこっち
$ pg_restore -d <DATABASE_NAME> <FILE_NAME>
role
一覧
# \du
作成
# CREATE ROLE <ROLE_NAME> WITH LOGIN PASSWORD '<PASSWORD>';
名前変更
# ALTER ROLE <OLD_ROLE_NAME> TO <NEW_ROLE_NAME>
削除
# DROP ROLE <ROLE_NAME>;
database
一覧
# \l
切り替え
# \c <DATABASE_NAME>
作成
$ createdb -U <ROLE_NAME> <DATABASE_NAME>
or
# CREATE DATABASE <DATABASE_NAME>;
or
# CREATE DATABASE <DATABASE_NAME> OWNER <ROLE_NAME>;
削除
$ dropdb -U <ROLE_NAME> <DATABASE_NAME>
or
# DROP DATABASE <DATABASE_NAME>;
table
一覧(viewとかも)
# \d
一覧(tableだけ)
# \dt
作成
# CREATE TABLE IF NOT EXISTS <TABLE_NAME>(
id BIGSERIAL,
<COLUMN_NAME> <TYPE>,
...,
PRIMARY KEY (id)
);
COMMENT ON COLUMN <TABLE_NAME>.id IS 'ID';
COMMENT ON COLUMN <TABLE_NAME>.<COLUMN_NAME>IS '<COMMENT>';
...
削除
# DROP TABLE IF EXISTS <TABLE_NAME>;
schema
一覧
# \dn
確認
# SELECT current_schema;
作成
# CREATE SCHEMA <SCHEMA_NAME>;
複製
$ pg_dump -n <SOURCE_SCHEMA_NAME> <DATABASE_NAME> > <FILE_NAME>
# ALTER SCHEMA <NEW_SCHEMA_NAME> RENAME TO <SOURCE_SCHEMA_NAME>;
$ psql <DATABASE_NAME> < <FILE_NAME>
名前変更
# ALTER SCHEMA <OLD_NAME> RENAME TO <NEW_NAME>;
search_path変更
# SET search_path TO <SCHEMA_NAME>;
or
# ALTER USER <ROLE_NAME> SET search_path TO <SCHEMA_NAME>;
削除
# DROP SCHEMA <SCHEMA_NAME>;
or スキーマ内のテーブルごと削除
# DROP SCHEMA <SCHEMA_NAME> CASCADE;