svmk / yii-migration-postgresql-sectioning
用于使用 Yii1/Yii2 框架创建分区迁移。
0.0.8
2015-10-22 15:17 UTC
Requires
- php: >=5.3
This package is not auto-updated.
Last update: 2024-10-02 18:03:07 UTC
README
示例
在 Yii1 中按年份周对 DateTime 进行分区
<?php use svmk\yiiMigrationSectioningPostgres\PostgresqlMigrationHelper; use svmk\yiiMigrationSectioningPostgres\DateTimeWeekOfYearGrouping; class m151019_123058_create_table_page_stat extends CDbMigration { protected function getHelper() { $helper = new PostgresqlMigrationHelper( $this, 'page_stat', array( 'id' => 'bigserial NOT NULL PRIMARY KEY', 'data_id' => 'BIGINT', 'event_date' => 'TIMESTAMP', 'region_id' => 'INT', 'city_id' => 'INT', 'views' => 'INT', ) ); return $helper->grouping( new DateTimeWeekOfYearGrouping('id','event_date') ); } public function getDbConnection() { return Yii::app()->statisticsDb; } public function safeUp() { $this->getHelper()->up( function($migration,$tableName,$columns,$config,$isMainTable){ $migration->createTable( $tableName, $columns, $config ); if (!$isMainTable) { $migration->createIndex($tableName.'_data_id',$tableName,'data_id'); $migration->createIndex($tableName.'_event_date',$tableName,'event_date'); } } ); } public function safeDown() { $this->getHelper()->down(function($migration,$tableName,$isMainTable){ $migration->dropTable($tableName); }); } }
功能
对于分区,使用以下类
svmk\yiiMigrationSectioningPostgres\DateTimeDayOfYearGrouping
- 按时间戳字段的年日分组svmk\yiiMigrationSectioningPostgres\DateTimeWeekOfYearGrouping
- 按时间戳字段的年周分组svmk\yiiMigrationSectioningPostgres\IndexReminderOfDivisonGrouping
- 按整数字段分组 - 除余分部
要求
PHP 5.3
安装
在 composer.json 中要求此包并运行 composer update
"svmk/yii-migration-postgresql-sectioning": "*"