Database in Development

Topics: Administration, Customizing Orchard
Aug 11, 2015 at 6:27 PM
Edited Aug 11, 2015 at 6:27 PM
Hey!
Currently I am working with a colleague on a Orchard CMS project. The current problem is that both of us are modifying the database (adding menus, contenttypes, ...).
What is the best way to do it? We don't want to check in the database into sourcecontrol. Any suggestions?

This leads me to another question: I had to make an update on a existing Orchard site. So I grabbed the current live database and worked on it. The update needed a few changes in the database and it took me about 2 days. After that the live database and the dev database are out of sync. Whats the best practice in this situation?

Thanks a lot
Developer
Aug 11, 2015 at 7:42 PM
Edited Aug 11, 2015 at 7:44 PM
Best way would be to work with SQL Server/Express instead of SQL CE (which I assume you're using) then and set it up on some machine you both have access to. Better stay away from solutions like eg. sharing SQL CE database over Dropbox etc. It's a recipe for problems.

Regarding syncing - I find the VS SQL Data/Schema Compare tool perfect in such cases.
Aug 11, 2015 at 9:12 PM
Thank you for your answer. Having a central SQL server seems a good solution - Thank you.

I used VS SQL Comparer before (http://www.neuhold.pro/blog/update-a-live-orchard-database) but Zoltán said that it is not a perfect solution.
Developer
Aug 15, 2015 at 2:29 PM
The cleanest, though also risky (due to incomplete/faulty implementations) way of sharing content changes is by using recipes (i.e. export-import). But keep in mind that media files are not handled by recipes yet.
Aug 15, 2015 at 10:03 PM
But in my opinion import-export is a little bit "bulky". And how about views for a specific ID (for instance I need a special shape for a projection with ID 1)?

Thanks!
Developer
Aug 21, 2015 at 9:47 PM
You're right, having overrides for a specific ID won't easily work, as these are by definition not portable. Not much to do here; I'm not sure importing an item with the same identifier will overwrite it. If it does then you could create an empty item on the live site just to reserve the ID, then implement the actual changes locally and then export-import these.