Hello everyone !
I’d like to know if exists a way to retrieve sql staments (Create XX or Alter Table XX) that occure when a new module is deployed or when we add|update fields.
Thanks in advance !
Hello everyone !
I’d like to know if exists a way to retrieve sql staments (Create XX or Alter Table XX) that occure when a new module is deployed or when we add|update fields.
Thanks in advance !
Look at the documentation Module Installer :: SuiteCRM Documentation . You can create scripts „pre_install.php” or „post_install.php’”.
Thanks for the reply, but if I use module builder for create/update modules and simple do Deploy(without export in zip package)? Manifest is going to be overridden because it create from MBPackage.php; also how can I retrieve the sql created from beam/vardefs?
You can open zip archive, change manifest.php
and add script file to archive.
Ok, I’ll try thanks, but the real question is: does exists a easy way to retrieve sql statement from Vardefs o from bean ?
Yes. It’s possible. Each bean has a $this->db
object, and you could write something like this:
$sql = "<your_sql_request>";
$result = $this->db->query($sql);
while ($row = $this->db->fetchByAssoc($result)) {
... // your code where $row is array
}
You can generate new object also:
$db = DBManagerFactory::getInstance();
Yes, I know this, let me explain my issue in a better way: when SuiteCRM installs new module , it creates new table in my db, in agreement with data in vardefs, does exist a simple way to retrieve the Create Table statement that runs?
Yes. You can override the create_tables()
function for each bean.