<p>You could open up the db used by dev.customer.com for external access and connect to it from your local dev environment.</p>

CC BY-SA 3.0
2016-08-18T05:51:44.890Z
So when a customer wants 10 new fields, you add it to dev.customer.com, pull down db. Make code changes locally and deploy?
Magnus
CC BY-SA 3.0
2016-08-18T06:13:05.870Z
Sorry for the confusion. All I wanted to say is that I usually don't use a shared db while the site is in development. Instead I do what you mentioned in the question, content freeze, export from stage server, changes locally, import to stage again.
carlcs
CC BY-SA 3.0
2016-08-18T07:19:47.193Z
Well i think your solution (as i understood it :) ) sounded good. The customer can keep on working while i add minor changes. If the customer then wants bigger changes i can content freeze dev.customer.com. So thanks!
Magnus
CC BY-SA 3.0
2016-08-17T23:08:44.410Z
2016-08-18T06:03:50.307Z
2016-08-18T06:03:50.307Z
carlcs
<p>Essentially the question is "how can I manage changing database content across environments" which has been covered several times here before.  Some leisure reading:</p>

<p><a href="https://craftcms.stackexchange.com/questions/10/whats-the-best-practice-for-handling-data-migration-and-organization-across-dev">What&#39;s the best practice for handling data migration and organization across development environments?</a></p>

<p><a href="https://craftcms.stackexchange.com/questions/55/git-workflow-and-multi-environment-how-to-approach">Git Workflow and Multi Environment - how to approach</a></p>

<p><a href="https://craftcms.stackexchange.com/questions/13/whats-the-best-practice-for-upgrading-a-versioned-craft-site">What&#39;s the best practice for upgrading a versioned Craft site?</a></p>

<blockquote>
  <p>Does Craft 3 solve this?</p>
</blockquote>

<p>Craft 3.0 will not have a solution for this at launch, but we are planning on something post 3 launch that will help making managing Craft content across environments easier to manage.</p>

CC BY-SA 3.0
2016-08-17T09:17:23.767Z
Regarding content model export/import, it might be worth checking out the following plugins: [Schematic](https://github.com/nerds-and-company/schematic), [Art Vandelay](https://github.com/xodigital/ArtVandelay), [Field Manager](https://github.com/engram-design/FieldManager)
Mats Mikkel Rummelhoff
CC BY-SA 3.0
2016-08-17T16:38:09.613Z
Thanks Brad. I have read those earlier. The question don't have to be "how can I manage changing database content across environments". 

The question can be more like "When developer X  on a one-man firm take care of the design and development of an content empty site for a client, what is then the best workflow? Knowing that when the client start to fill the site with content, they want to have field changes and so on"

For example, is it totally wrong to skip git and local database and instead code directly on the server? How would you do Brad?
Magnus
CC BY-SA 3.0
2016-08-16T22:41:49.163Z
2016-08-16T22:41:49.163Z
Brad Bell
<p>At step 5 you basically start working with another person. Their content input is just as important as your code changes. </p>

<p>Therefore you'll need to alter the workflow as</p>

<p><strong>Code</strong> flowing in  "Local <strong>></strong> Staging <strong>></strong> Production" direction</p>

<p>and </p>

<p><strong>Database</strong> flowing in "Local <strong>&lt;</strong> Staging <strong>&lt;</strong> Production" direction</p>

CC BY-SA 3.0
2016-08-23T14:40:02.573Z
2016-08-23T14:40:02.573Z
Cem Meric
<p>My suggestion would be to do what is outlined in <a href="https://nystudio107.com/blog/database-asset-syncing-between-environments-in-craft-cms" rel="nofollow noreferrer">Database &amp; Asset Syncing Between Environments in Craft CMS</a></p>

<p>It's a little bit of logistical organization coupled with some scripts to do the asset/db synchronization.</p>

CC BY-SA 3.0
2017-07-27T15:00:39.103Z
2017-07-27T15:00:39.103Z
andrew.welch
<p>A common workflow for me when building a web page is the following. </p>

<ol>
<li>I'm getting a PSD-file (Photoshop) from a external advertising agency</li>
<li>Build the site in Webflow and then export to plain html/css/js</li>
<li>Build the site locally in Craft CMS using Textmate</li>
<li>Deploy to dev.customer.com using DeployBot and Github</li>
<li>Send username and password for Craft to advertising agency, they then start to fill the site with content </li>
</ol>

<p>The problem with this workflow is when the agency in step 5 want changes (new fields, sections).  I don't want to add fields on both localhost and dev.customer.com. And I don't want to temporarily shut down dev.customer.com, export database on dev.customer.com to localhost and then import to dev.customer.com when done (there is often a tight schedule).</p>

<p>How would you do? Does Craft 3 solve this?  If not, maybe me and the agency should work on the same codebase and database. One way is to have a small server locally (which i don't have) turned on 24h and open port 80 from outside so the agency could work in Craft. Another way is to use SSHFS to mount file system over SSH on a remote Linux VPS (which i have plenty of), but i'm not sure how stable this is.</p>

<deployment><workflow><git>
Recommended workflow when developing new websites
# Recommended workflow when developing new websites

(Asked by: username_0 on 2016-08-16)

A common workflow for me when building a web page is the following.

1. I'm getting a PSD-file (Photoshop) from a external advertising agency
2. Build the site in Webflow and then export to plain html/css/js
3. Build the site locally in Craft CMS using Textmate
4. Deploy to dev.customer.com using DeployBot and Github
5. Send username and password for Craft to advertising agency, they then start to fill the site with content

The problem with this workflow is when the agency in step 5 want changes (new fields, sections). I don't want to add fields on both localhost and dev.customer.com. And I don't want to temporarily shut down dev.customer.com, export database on dev.customer.com to localhost and then import to dev.customer.com when done (there is often a tight schedule).

How would you do? Does Craft 3 solve this? If not, maybe me and the agency should work on the same codebase and database. One way is to have a small server locally (which i don't have) turned on 24h and open port 80 from outside so the agency could work in Craft. Another way is to use SSHFS to mount file system over SSH on a remote Linux VPS (which i have plenty of), but i'm not sure how stable this is.

**Tags:** deployment, workflow, git


---

## 4 answers

### Answer by username_1 on 2016-08-17. Score: 2 | Accepted answer

You could open up the db used by dev.customer.com for external access and connect to it from your local dev environment.

> **Comments:**
> **username_0**: So when a customer wants 10 new fields, you add it to dev.customer.com, pull down db. Make code changes locally and deploy?  
> **username_1**: Sorry for the confusion. All I wanted to say is that I usually don't use a shared db while the site is in development. Instead I do what you mentioned in the question, content freeze, export from stage server, changes locally, import to stage again.  
> **username_0**: Well i think your solution (as i understood it :) ) sounded good. The customer can keep on working while i add minor changes. If the customer then wants bigger changes i can content freeze dev.customer.com. So thanks!  

---

### Answer by username_2 on 2016-08-16. Score: 8

Essentially the question is "how can I manage changing database content across environments" which has been covered several times here before. Some leisure reading:

[What's the best practice for handling data migration and organization across development environments?](https://craftcms.stackexchange.com/questions/10/whats-the-best-practice-for-handling-data-migration-and-organization-across-dev)

[Git Workflow and Multi Environment - how to approach](https://craftcms.stackexchange.com/questions/55/git-workflow-and-multi-environment-how-to-approach)

[What's the best practice for upgrading a versioned Craft site?](https://craftcms.stackexchange.com/questions/13/whats-the-best-practice-for-upgrading-a-versioned-craft-site)

> Does Craft 3 solve this?

Craft 3.0 will not have a solution for this at launch, but we are planning on something post 3 launch that will help making managing Craft content across environments easier to manage.

> **Comments:**
> **username_3**: Regarding content model export/import, it might be worth checking out the following plugins: [Schematic](https://github.com/nerds-and-company/schematic), [Art Vandelay](https://github.com/xodigital/ArtVandelay), [Field Manager](https://github.com/engram-design/FieldManager)  
> **username_0**: Thanks Brad. I have read those earlier. The question don't have to be "how can I manage changing database content across environments".   The question can be more like "When developer X  on a one-man firm take care of the design and development of an content empty site for a client, what is then the best workflow? Knowing that when the client start to fill the site with content, they want to have field changes and so on"  For example, is it totally wrong to skip git and local database and instead code directly on the server? How would you do Brad?  

---

### Answer by username_4 on 2016-08-23. Score: 4

At step 5 you basically start working with another person. Their content input is just as important as your code changes.

Therefore you'll need to alter the workflow as

**Code** flowing in "Local **>** Staging **>** Production" direction

and

**Database** flowing in "Local **<** Staging **<** Production" direction


---

### Answer by username_5 on 2017-07-27. Score: 1

My suggestion would be to do what is outlined in [Database & Asset Syncing Between Environments in Craft CMS](https://nystudio107.com/blog/database-asset-syncing-between-environments-in-craft-cms)

It's a little bit of logistical organization coupled with some scripts to do the asset/db synchronization.


---

