Is there any “best practice” in deploying customized SuiteCRM using version control system (Mercurial, in our case)?
We’d like to arrange fast and reliable process of moving our custom modifications from test to production environment.
Detailed questions:
Which files should be excluded from version control (configs etc)?
How to process database schema changes? Is it enough to transfer new php files and make “quick restore”? If yes, are there any exceptions?
Maybe there are other, better suited methods of achieving our goal?
We use SuiteCRM 7.10.10 + Mysql 5.7
Thanx in advance to anyone, who’d like to share experience .
*.ext.php files should be ignored - these are automatically generated by the CRM.
Config files should be ignored. There’s an argument to be made for having config override in the Repo but it’s up to you.
cache and upload should both be ignored.
We usually also ignore custom/modulebuilder, custom/history, custom/blowfish, custom/backup.
You may also want to ignore anything you would in a usual project - things like OS files or IDE generated files.
Most DB changes can be recreated witha Quick Repair and Rebuild. The exception to this is custom fields created in studio - I usually add custom fields manually rather than in studio to avoid this.
If you do add a custom field via studio you’ll need some way of keeping the fields_meta_data table up to date - perhaps a file in Git (make sure this isn’t web accessible if so).