public static function seed_initial_data() { if (static::has_been_seeded()) { return; } foreach (self::$initial_data as $model => $objects) { foreach ($objects as $data_set) { if (isset($data_set['password'])) { $data_set['password'] = hash_passwd($data_set['password']); } $obj = null; if (isset($data_set['id'])) { $obj = $model::find($data_set['id']); } if ($obj) { $obj->update_attrs($data_set); } else { $obj = new $model($data_set); $obj->is_new_object = true; } $obj->save(); foreach ($data_set as $attr => $val) { if (is_array($val) && $model::has_attr($attr) && $model::is_rel($attr)) { if ($model::get_attr_type($attr) == 'has-many') { $def = $model::get_attr($attr); if (any($def['is_bilinear']) && any($def['is_master'])) { unset($obj->{$attr}); $obj->assign_rel($attr, $val); } } } } } } \System\Database\Migration::create(array('seoname' => 'initial-seed', 'name' => 'Initial data seed', 'desc' => 'Initial data seed', 'status' => 'ok', 'date' => new \DateTime())); }