How to add additional table fields

From ISPWiki
Jump to: navigation, search

Sometimes you may need to save additional parameters of objects when writing a custom plug-un. With COREmanager (Class mgr db::Cache) you can add additional fields into the database table without modifying the application code. The fields that you add will be processed by standard algorithms: a field will be checked in the table (it will be added or modified, if needed), its values can be modified in the edit form or they can be displayed in the list (you will only need to add the corresponding field into metadata).

To add an additional field to the table, you should create catalog etc/sql/{product_name}.{table_name}.addon or etc/sql/{table_name}.addon

To add an additional field, create the etc/sql/{product_name}.{table_name}.addon or etc/sql/{table_name}.addon directories. Every file in these directories describes a separate table field. The field name matches the file name. By default, the string field will be created. Its maximum length is (VARCHAR(255)). You can set another data type, default value, or access permissions (Struct mgr_db::TableDesc::Field). Example of a file:

field type. Possible values are names of inheritor classes Class mgr db::Field. Example: the string name defines a field type class mgr_db::StringField. int - class mgr_db::IntField
field size (для class mgr_db::StringField). The default value: 255
restrict read access for different user roles (See Namespace mgr access). By default, this field is available to all users.
write access (analogous to access_read)
sets read and write access, and overwrites the configuration set through (access_read and access_write)
sets the default value

After this, you should clear cash and restart the panel:

rm -rf /usr/local/mgr5/var/.db.cache
killall core