Example #1
0
 public function add_attr(\Helper\Database\Attr $attr)
 {
     return $this->add_column($attr->name, $attr->get_data());
 }
Example #2
0
 private static function sync_bilinear_relation_table(\Helper\Database\Relation $rel)
 {
     $name = $rel->get_bilinear_table_name();
     $db = self::get_database();
     $table = $db->get_table($name);
     $mp = $rel->parent;
     $mm = $rel->model;
     $name_a = $mp::get_id_col();
     $name_b = $mm::get_id_col();
     $attrs = array(\Helper\Database\Attr::from_def('id_' . $name, array("type" => 'int', "is_unsigned" => true, "is_autoincrement" => true, "is_primary" => true)), \Helper\Database\Attr::from_def($name_a, array("type" => 'int', "is_unsigned" => true)), \Helper\Database\Attr::from_def($name_b, array("type" => 'int', "is_unsigned" => true)), \Helper\Database\Attr::from_def("created_at", array("type" => 'datetime', "default" => 'NOW()')), \Helper\Database\Attr::from_def("updated_at", array("type" => 'datetime', "default" => 'NOW()')));
     foreach ($attrs as $attr) {
         if (!$table->has_column($attr->name)) {
             $table->add_attr($attr);
         }
         $table->get_column($attr->name)->set_cfg($attr->get_data());
     }
     return $table->save();
 }