2014-11-23 20 views
0

SQL视图的问题是每次我需要做一个小的改变时,我需要创建另一个迁移。作为一个小型创业公司,如果不得不改变一些小事以改变观点,那么这是一个很大的障碍。管理postgresql视图而无需编写迁移?

是最好什么也别以下

  1. 删除并重新创建视图每次我部署我的应用程序;
  2. 这样,当我在视图中更改某些内容时,只要部署我的应用程序,它就会在数据库中更新。
+0

当你任何你想要的,如果它不破的生产和舒适为你一个小的启动,你可以做。 – zerkms 2014-11-23 21:05:07

+0

你在做什么迁移?你有什么改变?你在谈论postresql视图或视图层? – 2014-11-23 21:05:38

+0

@Muden Uzelac:问题很明显。如果你无法得到它的内容 - 请自行研究。 – zerkms 2014-11-23 21:09:00

回答

1

您所描述的只是另一种在部署时反转的迁移类型。这可能对您的业务需求有意义,如果您受到这种技术的阻碍,您可以随时回到正常的迁移系统。

在PostgreSQL中实现这样一个系统的最好方法是创建一个放在部署上的模式。这样你就不必创建所有的DROP VIEW ...命令,只需要DROP SCHEMA,那里的所有内容都将被删除。然后你可以运行你的程序来重建它。

实例部署脚本上部署执行:

/* Drop and rebuild the schema */ 

DROP SCHEMA IF EXISTS view_schema; 

CREATE VIEW view_schema.my_users AS (SELECT * FROM users); 
CREATE VIEW view_schema.my_products AS (SELECT * FROM products); 
.... 
+0

这实际上是非常棒的建议,比我想象的要好得多。你能否详细说明这是如何工作的。所以我会创建另一个模式,(例如view_schema);每次部署时,视图模式都会被丢弃/重建? – samol 2014-11-23 21:21:41

+0

的确,我添加了一个示例脚本来运行部署。 – 2014-11-23 21:31:06

+0

这是通常做的?我打算为一个项目做到这一点:) – samol 2014-11-23 21:33:11