where(['method_name' => $method_name])->one(); if (!$record) { $record = new DictionaryUpdateHistory(); $record->method_name = $method_name; } $record->updated_at = $time; if (!$record->save()) { throw new RecordNotValid($record); } } public static function hasUpdatedDictionariesAfterVersionMigrated() { if (!Yii::$app->db->schema->getTableSchema('system_db_migration') || !Yii::$app->db->schema->getTableSchema(DictionaryUpdateHistory::tableName())) { return true; } $latest_version_migration_timestamp = (new Query()) ->select(['MAX(apply_time)']) ->from(['migrations' => 'system_db_migration']) ->where(['LIKE', 'version', 'version_migration']); return DictionaryUpdateHistory::find()->where(['>', 'updated_at', $latest_version_migration_timestamp])->exists(); } }