Database Changes

When changing code for this project you may add, remove or modify columns in the SQL database. Those change must be updated too in the sql directory.

SQL tables

Modify the SQL table definitions in the directory sql/mysql/.

Data

Some tables may require data, place them in the directory sql/data. The files must be called with the insert prefix to the table name. So if you create the new table domaindrivers you have to :

  • Create a file at sql/mysql/domaindrivers.sql
  • Optionally create a file at sql/data/insert_domaindrivers.sql with the insertions

SQLite

SQLite definitions are used for testing and are created from the MySQL files. Once the mysql file is created, add the new table name to the sql/mysql/Makefile and run make. It requires https://github.com/dumblob/mysql2sqlite

Runtime upgrade

When ravada runs, it can check if the table defition is accurate. Place the code following the examples at the function upgrade_tables in Ravada.pm

Example: To check if the table vms has the field vm_type:

$self->_upgrade_table('vms','vm_type',"char(20) NOT NULL DEFAULT 'KVM'");