Migration - mymagic/open_hub GitHub Wiki

Init migration

$migration = Yii::app()->db->createCommand();

Execute raw SQL

$sql = 'UPDATE `eventbrite_organization_webhook` as t LEFT JOIN `organization` as f ON t.organization_code=f.code SET t.organization_id=f.id';
Yii::app()->db->createCommand($sql)->execute();

Create new table

$migration->createTable('eventbrite_organization_webhook', [
    'id' => 'pk',
    'organization_code' => 'varchar(64) NOT NULL ',
    'as_role_code' => "varchar(64) NOT NULL DEFAULT 'owner'",
    'eventbrite_account_id' => 'varchar(64) NOT NULL',
    'eventbrite_oauth_secret' => 'varchar(255) NULL',
    'json_extra' => 'text NULL',
    'is_active' => 'tinyint(1) NOT NULL DEFAULT 1',
    'date_added' => 'integer',
    'date_modified' => 'integer',
]);
$migration->alterColumn('eventbrite_organization_webhook', 'json_extra', 'longtext NULL');

Rename Table

$migration->renameTable('impact2ideabank', 'ideabank_idea2impact');

Insert Data

$migration->insert('ntis_regulatory_body', [
    'code' => 'KPDNHEP',
    'title' => 'Ministry of Domestic Trade and Consumer Affairs',
    'is_active' => 1,
    'date_added' => time(),
    'date_modified' => time(),
]);

Add New Column

with index and foreign key

$migration->addColumn('challenge', 'application_form_id', 'integer NULL AFTER url_application_form');
$migration->createIndex('application_form_id', 'challenge', 'application_form_id', false);
$migration->addForeignKey('fk_challenge-application_form_id', 'challenge', 'application_form_id', 'form', 'id', 'SET NULL', 'CASCADE');

Drop Foreign Key

$migration->dropForeignKey('FK_impact2ideabank_impact_id', 'impact2ideabank');

Drop Table

$migration->dropTable('ideabank_idea2ntis_technology');

Init Meta

MetaStructure::initMeta('organization', 'community', 'urlYoutubeCoverVideo', 'string', 'Cover Youtube Video URL', 'URL to display youtube video in community organization page', '');

Set Service

Service::setService('cv', 'CV Portfolio', 'A talent directory showcasing  experience and qualifications for job opportunity and cofounder matching', array('is_bookmarkable' => 1, 'is_active' => 1));

Set Access Role

Access::setAccessRole('ntis', 'BackendController', ['manageSolutionProvider'], ['ntisTechSecretariat', 'ntisRegulatorySecretariat']);

Set setting

Setting::setSetting('sample-var1', 'Hello World 0.2', 'string');

Set embed

Remember: always prefix your embed with module (e.g. boilerplateStart-, sample-) or context code (e.g. cpanel-)

$embed = Embed::setEmbed('ntis-signup-tncContent', array(
    'is_title_enabled' => true,
    'is_text_description_enabled' => false,
    'is_html_content_enabled' => true,
    'is_image_main_enabled' => false,
    'is_default' => true,
    'title_en' => 'Terms and Conditions',
    'html_content_en' => 'Hello Admin, please remember to update this terms and condition content inside Embed \ <b>#signup-tncContent</b>',
));