L'utilizzo della migrazione per inserire o modificare la struttura della tabella non è un problema per me. Ma ho problemi a cambiare i dati all'interno di una tabella usando il modello. La mia idea è quella di fare qualcosa di simile:Impossibile utilizzare il modello nella migrazione in Yii 1.x
public function up()
{
$models = MyModel::model()->findAll();
foreach ($models as $variable) {
$variable->property = str_replace('.', ',', $variable->property);
$variable->save();
}
}
Sembra, che sono in grado di importare il modello, perché sto ottenendo l'errore follwoing:
*** applying m111010_084827_convert_point_2_comma
PHP Error[2]: include(MyModel.php): failed to open stream: No such file or directory
Se provo a importare il Modello prima:
$modelClass = Yii::import('application.models.*');
allora l'errore è:
*** applying m111010_084827_convert_point_2_comma
exception 'CDbException' with message 'The table "{{mymodel}}" for active record class "MyModel" cannot be found in the database.' in C:\...\yii\framework\db\ar\CActiveRecord.php:2276
Dov'è il problema? Che cosa sto facendo di sbagliato? Come devo importare il modello nella migrazione nel modo giusto? O forse dovrei sostituire le stringhe con i comandi SQL?
Questa può sembrare una domanda ovvia ma ... hai il corretto modello CACtiveRecord impostato, specifica il corretto 'tableName()', e la tabella esiste nel database? Perché ho appena fatto un rapido test per il passaggio di alcuni modelli in una migrazione che sembrava funzionare bene per me. – thaddeusmt
@thaddeusmt: tableName, Modelli e tabelle avevano ragione. ma non ho mai capito che in config/console.php c'è un'altra configurazione db. dopo che l'ho cambiato - ha funzionato! grazie .. – zonky
Ah! Sì, è difficile. Sono contento che tu l'abbia capito! Ho un file di configurazione "base" che uso per le informazioni sul DB, e quindi utilizzo CMap :: mergeArray per combinarlo con i miei file di configurazione web e console in modo che ereditino le stesse informazioni del DB. – thaddeusmt