背景

harbor 1.9.X 升级到1.10.X之后使用项目当中的tag保留功能会有bug,无法进行镜像的删除,并且也无法删除曾经创建的保留规则。如果需要进行tag保留功能的使用,需要手动将原有的tag保留规则删除后再重新创建,即可恢复。

进入postgresql的 容器

1docker exec -it harbor-db /bin/bash
2连接本地数据库
3
4psql -U postgres -d registry
 1registry=# select * from  project where name like '%yfzx_release%';
 2 project_id | owner_id |     name     |    creation_time    |     update_time     | deleted
 3------------+----------+--------------+---------------------+---------------------+---------
 4         62 |        3 | yfzx_release | 2020-11-23 05:39:46 | 2020-11-23 05:39:46 | f
 5(1 row)
 6
 7
 8
 9  9 | project     |              62 | Schedule     | {"id":0,"algorithm":"or","rules":[{"id":0,"priority":0,"disabled":false,"action":"retain","template":"latestPushedK","params":{"latestPushedK":5},"t
10ag_selectors":[{"kind":"doublestar","decoration":"matches","pattern":"**"}],"scope_selectors":{"repository":[{"kind":"doublestar","decoration":"repoMatches","pattern":"**"}]}}],"trigger":{"kind":"Sched
11ule","settings":{"cron":"0 0 0 * * 0"},"references":{"job_id":16}},"scope":{"level":"project","ref":62}}
12
13
14delete from  retention_policy where id=9;
15
16
17
18
19select * from project_metadata;
20
21
22
23
24122 |         62 | retention_id            | 9     | 2020-12-23 08:47:27        | 2020-12-23 08:47:27
25
26
27
28delete from  project_metadata  where id=122;

image-20210625181339231

image-20210625181346121

image-20210625181359753

image-20210625181453637

image-20210625181518618

image-20210625181536786

进入控制台

1sudo -u postgres psql

1psql -U dbuser -d exampledb -h 127.0.0.1 -p 5432

退出

1postgres=# \q

创建用户

1sudo -u postgres createuser dbuser

1sudo -u postgres psql
2postgres=# CREATE USER dbuser WITH PASSWORD 'password';

查看所有用户

1postgres=# \du

更改密码

1postgres=# \password dbuser
2postgres=# \q

删除用户

1postgres=# drop user dbuser;

创建数据库

1postgres=# CREATE DATABASE exampledb OWNER dbuser;
2postgres=# GRANT ALL PRIVILEGES ON DATABASE exampledb to dbuser;
3postgres=# \c exampledb;
4postgres=# ALTER SCHEMA public OWNER to dbuser;
5postgres=# GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO dbuser;
6postgres=# GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO dbuser;

1sudo -u postgres createdb -O dbuser exampledb

查看所有数据库

1postgres=# \l

切换数据库

1postgres=# \c exampledb

查看表

1postgres=# \d

查看表结构

1postgres=# \d user_tab1

常用控制台命令

 1\password           设置密码。
 2\q                  退出。
 3\h                  查看SQL命令的解释,比如\h select。
 4\?                  查看psql命令列表。
 5\l                  列出所有数据库。
 6\c [database_name]  连接其他数据库。
 7\d                  列出当前数据库的所有表格。
 8\d [table_name]     列出某一张表格的结构。
 9\du                 列出所有用户。
10\e                  打开文本编辑器。
11\conninfo           列出当前数据库和连接的信息。

基本的 SQL 语句

 1# 创建新表
 2CREATE TABLE user_tbl(name VARCHAR(20), signup_date DATE);
 3
 4# 插入数据
 5INSERT INTO user_tbl(name, signup_date) VALUES('张三', '2013-12-22');
 6
 7# 查询记录
 8SELECT * FROM user_tbl;
 9
10# 更新数据
11UPDATE user_tbl set name = '李四' WHERE name = '张三';
12
13# 删除记录
14DELETE FROM user_tbl WHERE name = '李四' ;
15
16# 添加字段
17ALTER TABLE user_tbl ADD email VARCHAR(40);
18
19# 更改字段类型
20ALTER TABLE user_tbl ALTER COLUMN signup_date SET NOT NULL;
21
22# 设置字段默认值(注意字符串使用单引号)
23ALTER TABLE user_tbl ALTER COLUMN email SET DEFAULT 'example@example.com';
24
25# 去除字段默认值
26ALTER TABLE user_tbl ALTER email DROP DEFAULT;
27
28# 重命名字段
29ALTER TABLE user_tbl RENAME COLUMN signup_date TO signup;
30
31# 删除字段
32ALTER TABLE user_tbl DROP COLUMN email;
33
34# 表重命名
35ALTER TABLE user_tbl RENAME TO backup_tbl;
36
37# 删除表
38DROP TABLE IF EXISTS backup_tbl;
39
40# 删除库
41\c hello2;
42DROP DATABASE IF EXISTS hello;