{
public function up()
{
- // rampage_types
- $t = $this->createTable('rampage_types', array('primaryKey' => 'type_id'));
- $t->column('type_name', 'string', array('limit' => 255, 'null' => false));
- $t->end();
-
- $this->addIndex('rampage_types', array('type_name'), array('name' => 'rampage_objects_type_name', 'unique' => true));
-
-
- // rampage_objects
- $t = $this->createTable('rampage_objects', array('primaryKey' => 'object_id'));
- $t->column('object_name', 'string', array('limit' => 255, 'null' => false));
- $t->column('type_id', 'integer', array('null' => false, 'unsigned' => true));
- $t->end();
-
- $this->addIndex('rampage_objects', array('type_id', 'object_name'), array('name' => 'rampage_objects_type_object_name', 'unique' => true));
-
-
- // rampage_users
- $t = $this->createTable('rampage_users', array('primaryKey' => 'user_id'));
- $t->column('user_name', 'string', array('limit' => 255, 'null' => false));
- $t->end();
-
- $this->addIndex('rampage_users', array('user_name'), array('name' => 'rampage_users_user_name', 'unique' => true));
+ $tableList = $this->tables();
+
+ if (!in_array('rampage_types', $tableList)) {
+ // rampage_types
+ $t = $this->createTable('rampage_types', array('primaryKey' => 'type_id'));
+ $t->column('type_name', 'string', array('limit' => 255, 'null' => false));
+ $t->end();
+ $this->addIndex('rampage_types', array('type_name'), array('name' => 'rampage_objects_type_name', 'unique' => true));
+ }
+
+ if (!in_array('rampage_objects', $tableList)) {
+ // rampage_objects
+ $t = $this->createTable('rampage_objects', array('primaryKey' => 'object_id'));
+ $t->column('object_name', 'string', array('limit' => 255, 'null' => false));
+ $t->column('type_id', 'integer', array('null' => false, 'unsigned' => true));
+ $t->end();
+ $this->addIndex('rampage_objects', array('type_id', 'object_name'), array('name' => 'rampage_objects_type_object_name', 'unique' => true));
+ }
+
+ if (!in_array('rampage_users', $tableList)) {
+ // rampage_users
+ $t = $this->createTable('rampage_users', array('primaryKey' => 'user_id'));
+ $t->column('user_name', 'string', array('limit' => 255, 'null' => false));
+ $t->end();
+ $this->addIndex('rampage_users', array('user_name'), array('name' => 'rampage_users_user_name', 'unique' => true));
+ }
}
public function down()
{
public function up()
{
- // rampage_tags
- $t = $this->createTable('rampage_tags', array('primaryKey' => 'tag_id'));
- $t->column('tag_name', 'string', array('limit' => 255, 'null' => false));
- $t->end();
-
- $this->addIndex('rampage_tags', array('tag_name'), array('name' => 'rampage_tags_tag_name', 'unique' => true));
-
-
- // rampage_tagged
- $t = $this->createTable('rampage_tagged', array('primaryKey' => array('user_id', 'object_id', 'tag_id')));
- $t->column('user_id', 'integer', array('null' => false, 'unsigned' => true));
- $t->column('object_id', 'integer', array('null' => false, 'unsigned' => true));
- $t->column('tag_id', 'integer', array('null' => false, 'unsigned' => true));
- $t->column('created', 'datetime');
- $t->end();
-
- $this->addIndex('rampage_tagged', array('object_id'), array('name' => 'rampage_tagged_object_id'));
- $this->addIndex('rampage_tagged', array('tag_id'), array('name' => 'rampage_tagged_tag_id'));
- $this->addIndex('rampage_tagged', array('created'), array('name' => 'rampage_tagged_created'));
-
-
- // rampage_tag_stats
- $t = $this->createTable('rampage_tag_stats', array('primaryKey' => 'tag_id'));
- $t->column('count', 'integer', array('unsigned' => true));
- $t->end();
-
-
- // rampage_user_tag_stats
- $t = $this->createTable('rampage_user_tag_stats', array('primaryKey' => array('user_id', 'tag_id')));
- $t->column('user_id', 'integer', array('null' => false, 'unsigned' => true));
- $t->column('tag_id', 'integer', array('null' => false, 'unsigned' => true));
- $t->column('count', 'integer', array('unsigned' => true));
- $t->end();
-
- $this->addIndex('rampage_user_tag_stats', array('tag_id'), array('name' => 'rampage_user_tag_stats_tag_id'));
+ $tableList = $this->tables();
+
+ if (!in_array('rampage_tags', $tableList)) {
+ // rampage_tags
+ $t = $this->createTable('rampage_tags', array('primaryKey' => 'tag_id'));
+ $t->column('tag_name', 'string', array('limit' => 255, 'null' => false));
+ $t->end();
+ $this->addIndex('rampage_tags', array('tag_name'), array('name' => 'rampage_tags_tag_name', 'unique' => true));
+ }
+
+ if (!in_array('rampage_tagged', $tableList)) {
+ // rampage_tagged
+ $t = $this->createTable('rampage_tagged', array('primaryKey' => array('user_id', 'object_id', 'tag_id')));
+ $t->column('user_id', 'integer', array('null' => false, 'unsigned' => true));
+ $t->column('object_id', 'integer', array('null' => false, 'unsigned' => true));
+ $t->column('tag_id', 'integer', array('null' => false, 'unsigned' => true));
+ $t->column('created', 'datetime');
+ $t->end();
+ $this->addIndex('rampage_tagged', array('object_id'), array('name' => 'rampage_tagged_object_id'));
+ $this->addIndex('rampage_tagged', array('tag_id'), array('name' => 'rampage_tagged_tag_id'));
+ $this->addIndex('rampage_tagged', array('created'), array('name' => 'rampage_tagged_created'));
+ }
+
+ if (!in_array('rampage_tag_stats', $tableList)) {
+ // rampage_tag_stats
+ $t = $this->createTable('rampage_tag_stats', array('primaryKey' => 'tag_id'));
+ $t->column('count', 'integer', array('unsigned' => true));
+ $t->end();
+ }
+
+ if (!in_array('rampage_user_tag_stats', $tableList)) {
+ // rampage_user_tag_stats
+ $t = $this->createTable('rampage_user_tag_stats', array('primaryKey' => array('user_id', 'tag_id')));
+ $t->column('user_id', 'integer', array('null' => false, 'unsigned' => true));
+ $t->column('tag_id', 'integer', array('null' => false, 'unsigned' => true));
+ $t->column('count', 'integer', array('unsigned' => true));
+ $t->end();
+ $this->addIndex('rampage_user_tag_stats', array('tag_id'), array('name' => 'rampage_user_tag_stats_tag_id'));
+ }
}
public function down()