?

Log in

During DB development it became clear, that using a version control system (VCS) for sources ... - PostgreSQL [entries|archive|friends|userinfo]
PostgreSQL Users

[ website | PostgreSQL Web site ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

During DB development it became clear, that using a version control system (VCS) for sources ... [Jan. 12th, 2008|08:07 pm]
PostgreSQL Users

postgresql

[poige]
... in PlPgSQL (and might be for table definitions as well) is rather highly preferable. However, I haven't found a suitable tool yet. It seems that the simpliest way is to dump a DB with Postgresql's pg_dump and then put the source under VCS, but this is poorly satisfactory. I deem the better solution would be a tool ``decomposing'' this dump into a chunk-files, containing only one function definition perhaps with other needed entities. Yeah, this is not too hard to write by myself, but if there's something better (or at least already written) available, I'd use it. :-)
linkReply

Comments:
[User Picture]From: decibel45
2008-01-13 12:29 am (UTC)
There is *no* good way to handle database source code in a VCS, period. Every way you do it has non-trivial drawbacks, at least it does if you care about being able to port an existing database from one version of the schema to another.

Often what I end up doing is sticking table definitions into one file, and views/functions/other things that can easily be re-defined on the fly in another. Then, any time I make a schema change, I'll create a separate file that has commands to patch an existing database to reflect the changes. Luckily, you normally only have to do that when changing tables; you can usually change a view or function and just re-run the script that defines everything.
(Reply) (Thread)
[User Picture]From: poige
2008-01-13 12:43 pm (UTC)

> There is *no* good way to handle database source code in a VCS, period

To me mine is quite good, but the question is what's better and is there anything ready-and-suitable.
(Reply) (Parent) (Thread)