【发布时间】:2016-01-29 14:11:24
【问题描述】:
我已经尝试过多次关注Sqitch's 'postgres tutorial',只是我没有更改函数(使用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
这是我在tagged 之前和tagged 之后的部署查询
在标记数据库之前
BEGIN;
CREATE TABLE sq_schema.contact
(
log_date DATE NOT NULL,
emp_name CHARACTER VARYING(100) DEFAULT ''
);
COMMIT;
标记数据库
sqitch rework contact --requires appschema -n 'Added CONTACT table'
标记后
BEGIN;
CREATE TABLE sq_schema.contact
(
log_date DATE NOT NULL,
-- Change field name,
employee_name CHARACTER VARYING(100) DEFAULT ''
);
COMMIT;
【问题讨论】:
-
Sqitch的作者在Github回答了我上面的问题。解决方案是改为添加
ALTER TABLE文件。
标签: postgresql sqitch