我pg_dump
用来制作数据库的副本,copy1.sql
.
我运行向上迁移以创建一个新实例
up: asyn (queryInterface) => {
return await queryInterface.bulkInsert('keys', [{ clientKey: 'key123' }]);
}
我运行向下迁移以删除实例
down: async (queryInterface) => {
return await queryInterface.bulkDelete('keys', { clientKey: ['key123'] });
}
我做另一个pg_dump
数据库,copy2.sql
. 我将数据库的第一个副本与数据库的第二个副本进行比较,以显示通过运行 bash 脚本向下迁移工作正常
diff "copy1.sql" "copy2.sql"
不同的是
-SELECT pg_catalog.setval('public.keys_id_seq', 6, true);
+SELECT pg_catalog.setval('public.keys_id_seq', 7, true);
这使我的测试失败,因为由于这种差异,两个数据库的副本并不相同。即使我删除了那个键,它表示下一个 id 序列将从 8 开始,而不是根据本文档的 7 开始。当前存在的表行是 1 到 6。有没有办法删除实例以使序列从 7 而不是 8 开始?这意味着数据库的两个副本都应该具有
SELECT pg_catalog.setval('public.keys_id_seq', 6, true);
我可以包括哪些选项?也许像
down: async (queryInterface) => {
return await queryInterface.bulkDelete('keys', { clientKey: ['key123'] }, { resetIdSequence: true });
}