由于更改顺序也可以从计划中解析,那么指定依赖关系有何不同?
另外,我是否需要指定所有依赖项,还是仅指定每个依赖项链的最后一个更改?
我已经尝试了几次以遵循Sqitch的 “ postgres教程 ”,只是除了更改功能(使用CREATE OR REPLACE FUNCTION
)之外,我还更改了表中的字段名称,以查看部署后它将如何锻炼。但是最终出现以下错误。有人可以指出我正确的方向吗?
$ sqitch verify
Verifying sqtest_db
* appschema .... ok
* contact ...... ok
Undeployed change:
* contact
Verify successful
$ sqitch deploy
Deploying changes to sqtest_db
+ contact .. psql:deploy/contact.sql:10: ERROR: relation "contact" already exists
not ok
"/usr/local/bin/psql" unexpectedly returned exit value 3
Deploy failed
Run Code Online (Sandbox Code Playgroud)
这是我之前tagged
和之后tagged
部署查询
在标记数据库之前
BEGIN;
CREATE TABLE sq_schema.contact
(
log_date DATE NOT NULL,
emp_name CHARACTER VARYING(100) DEFAULT ''
);
COMMIT;
Run Code Online (Sandbox Code Playgroud)
用标记数据库
sqitch rework …
Run Code Online (Sandbox Code Playgroud) 如果 sqitch 中没有依赖项,是否可以恢复特定更改?例如,我像下面的代码一样设置我的项目并部署它并加载一些数据。大约一天后(或者可能是同一天),利益相关者决定我需要向 fct_tickets 添加更多列或对该表进行另一次更改。
如果我尝试恢复 fct_tickets,它将恢复所有后续表,这很遗憾,因为我已经向它们加载了数据。
我已经尝试了某些标志(--upon、--unto 等),但它仍然想恢复 sqitch.plan 文件中 fct_tickets 之后的所有内容。
sqitch add scm_example --template pg_create_schema -s schema=example -n 'Create schema for Example data.'
sqitch add fct_tickets --requires scm_example -n 'Create table for ticket data.'
sqitch add fct_chats --requires scm_example -n 'Create table for chat data.'
sqitch add fct_calls --requires scm_example -n 'Create table for call data.'
sqitch add dim_users --requires scm_example -n 'Create table for user mapping data.'
sqitch add dim_source_files --requires scm_example -n 'Create table to …
Run Code Online (Sandbox Code Playgroud)