I am new to Drupal, but have learned a lot over the last two or three months. I am still fuzzy and perplexed about how to migrate new functionality and/or content from development to production.
I have turned off the Comments module because it really doesn't make sense for my site, but visitors can create a login ID. I will add the ability to subscribe to a newsletter soon. This means that I have to identify which tables and/or files are changed when a new login is created so that I don't destroy them when I migrate updates to the site from my local Win 7 computer running Acquia Dev Desktop.
I have learned that:
- Drupal uses a MySQL database to store not only content, but also settings information such as those pertaining to the Backup & Migrate module.
- In addition to the database there are LOTS of files with settings information, php statements and/or HTML.
- The Schema module's compare function tells me which tables are used by a given module.
According to Is there a module that lists which tables are created, owned or modified by a particular module? all well written modules should create tables only using hook_schema, and should not alter tables in other modules.
If you suspect that other tables got changed, you can find this in the .install file for each module. Look for the database layer calls like db_add_field or even db_create_table.
With the above in mind, Schema gives me the tables a given module creates in the database. In my case, User is apparently the module that handles loginID's. Since it is a core module I assume that it is well written and that I don't have to go looking in its install file.
It appears that there is no enforcement mechanism in Drupal 7 that would prevent module developers from not using hook_schema.
I discovered the Backup & Migrate module a few days ago. It works smoothly, but does a wholesale restore which would wipe out new logins.
The Data Export Import module (https://www.drupal.org/project/data_export_import) seems like it will work well, but I can't find a video or documentation.
There is lots of useful information at Drupal cross server workflow. From that I got the following:
The Features module seems to apply to developers, not me because I am not writing modules.
Drush appears to be overkill as well and yet another learning curve.
GIT appears to be overkill and another learning curve for a one-man shop.
I seem to be left with a manual export/import of the database using phpMyAdmin to prevent wiping out the login ID's. As I move forward with more functionality this task becomes very cumbersome. I am hoping that the only thing I have to fret over is the database so that I can just use FileZilla for files uploads without having to worry about what files may have been changed by activity on my site.
Please tell me which assumptions I've made above that are incorrect. Also, I'd appreciate any additional advice you can give.
Sorry this post is so long. I wanted to be thorough!