Drupal DATABASE deployment strategies?

后端 未结 4 1830
别跟我提以往
别跟我提以往 2020-12-05 00:56

From this item: What's best Drupal deployment strategy? .... I quote:

Databases are trickier; cleaning up the dev/staging DB and pushing it to liv

4条回答
  •  北海茫月
    2020-12-05 01:56

    Is there any other way to keep my db and server DB in synch? especially considering that users will be posting new data all the time?

    We have a large distributed team and editorial staff everywhere so deploying the database is not feasible.

    To get around this we make extensive use of update functions. We have a module which has no real code, which we use for updating settings. Every time a developer makes a configuration change they write an update function in this module which when run will make the corresponding change on the other development DBs, staging and live.

    There are issues, particularly with cross dependencies (if people write update functions in more than one module), and it can take time to code something that is a relatively minor change in the admin. Install profile api helps in this.

    For example

    function mysite_update_6000() {
      install_include(array('user'));
      $editor_rid = install_add_role('editor');
      install_add_permissions(DRUPAL_ANONYMOUS_RID, array('do something'));
      install_add_permissions($editor_rid, array('do something', 'administer nodes'));
      return array();
    } 
    

    Will add a role and assign some permissions to it. Doing this keeps all of the changes in the code so that you don't have to try to migrate and synchronise databases.

    There is also a migration module which may help with this, it logs changes to tables and saves them to an update function. This is not to be confused with the drupal.org migrate module which is for content migration.

    We have had some success, but also some issues with the features module, which can help with migrating features.

提交回复
热议问题