Match Vicidial Version to DB Schema

From ViciWiki
Jump to: navigation, search

SVN is used to manage the "install directory" (/usr/src/astguiclient/trunk)

The install directory has a group of sql files that are used to upgrade from the first version to NOW (based on the svn revision level presently in THAT directory).

When your last sql upgrade file has a last line indicating that the db schema value should be what is presently shown in your System Settings ... you have a match. All your code will match your entire DB if you run with that version loaded.

Anything else is more of a "sort of" match. That's the only truly reliable method. How you get there is a matter of experience and knowledge of svn. But upgrading/downgrading that svn repository until you get lucky and it matches is the easiest amateur way to get a lock-on match of your present db schema.

start here:

tail /usr/src/astguiclient/trunk/extras/upgrade_2.14.sql | grep db_schema_version
mysql -u cron -p1234 asterisk -e "select * from system_settings\G" | grep schema
cd /usr/src/astguiclient/trunk
svn info | grep Revision

Compare the db schema in system settings to the db schema in the upgrade.sql file. Note the svn revision level. Increase or decrease the svn revision level with "svn up -r ####" and ... try again until the db schema in the sql file and system settings match. Example:

svn up -r 2946

Then run perl Example:

cd /usr/src/astguiclient/trunk
perl --copy_sample_conf_files

Note that --copy_sample_conf_files will overwrite the .conf files presently in the system. Any that you have edited will need to be re-edited. Such as externip=xxx.xx.xx.x in sip.conf. While updating these isn't always necessary, NOT updating them has been known to blow an entire workday for simple "missed" change that's very difficult to find otherwise. Skip copy_sample_conf_files at your own risk. 8-)