Thanks Chuck, Paul and Mike for your help

The principal problem was that Migrations functionality is called automatically 
after my own code that loads some info from de data base, so if the migration 
has changes in a table that is considered in my code the app crashes before the 
migration occurs.

The solution is to add the Chuck's code before everything else in the 
constructor of my Application class.

if (ERXMigrator.shouldMigrateAtStartup())
            {
                try
                {
                    migrator().migrateToLatest();
                }
                catch (ERXMigrationFailedException e)
                {
                    // It might be a missing plugin problem
                    new 
ERXJDBCConnectionAnalyzer(databaseConnectionDictionary());
                    throw e;
                }
            }



On Apr 6, 2011, at 12:51 PM, Paul D Yu wrote:

> Look at the _dbupdater table in your database.
> 
> It should have a row in there with your EOModel name in it;  set the version 
> back to null.
> 
> Paul
> 
> On Apr 6, 2011, at 1:43 PM, Mike Schrag wrote:
> 
>> More than likely you've already run once, and the migration did nothing, so 
>> it succeeded, and it's not going to run it again unless you modify the data 
>> in the migration version table to reset it back.
>> 
>> On Apr 6, 2011, at 1:24 PM, Miguel Angel Torres Avila wrote:
>> 
>>> Thanks Paul
>>> 
>>> For some reason the code inside the upgrade class is never called.
>>> 
>>> I think I should mistyped something. I am checking now.
>>> 
>>> 
>>> On Apr 6, 2011, at 12:16 PM, Paul D Yu wrote:
>>> 
>>>> Miguel
>>>> 
>>>> You will need to call the external sql script from inside of your 
>>>> Migration.java file.
>>>> 
>>>>     @Override
>>>>     public void upgrade(EOEditingContext editingContext, 
>>>> ERXMigrationDatabase database) throws Throwable {
>>>>         
>>>> ERXJDBCUtilities.executeUpdateScriptFromResourceNamed(database.adaptorChannel(),
>>>>  "DInAdminEOModel1_Postgresql_Upgrade.migration", "DIModelFramework");
>>>>     }
>>>> 
>>>> Something like that?
>>>> 
>>>> Paul
>>>> On Apr 6, 2011, at 1:07 PM, Chuck Hill wrote:
>>>> 
>>>>> Is this a "full" Wonder app, extending ERXApplication?  If not, you need 
>>>>> to initiate the migration:
>>>>> 
>>>>>             if (ERXMigrator.shouldMigrateAtStartup())
>>>>>             {
>>>>>                 try
>>>>>                 {
>>>>>                     migrator().migrateToLatest();
>>>>>                 }
>>>>>                 catch (ERXMigrationFailedException e)
>>>>>                 {
>>>>>                     // It might be a missing plugin problem
>>>>>                     new 
>>>>> ERXJDBCConnectionAnalyzer(databaseConnectionDictionary());
>>>>>                     throw e;
>>>>>                 }
>>>>>             }
>>>>> 
>>>>> Chuck
>>>>> 
>>>>> 
>>>>> On Apr 6, 2011, at 9:47 AM, Miguel Angel Torres Avila wrote:
>>>>> 
>>>>>> Hi all,
>>>>>> 
>>>>>> I am trying to implement Migrations in an existing Application.
>>>>>> 
>>>>>> I followed the instructions in this page:
>>>>>> 
>>>>>> http://webobjects.mdimension.com/hudson/job/Wonder/javadoc/er/extensions/migration/package-summary.html
>>>>>> 
>>>>>> and this one 
>>>>>> 
>>>>>> http://webobjects.mdimension.com/hudson/job/Wonder/javadoc/er/extensions/migration/ERXMigration.html
>>>>>> 
>>>>>> I think the steps are:
>>>>>> 
>>>>>> 1. Modify properties file:
>>>>>> 
>>>>>> # Migrations
>>>>>> er.migration.migrateAtStartup=true
>>>>>> er.migration.createTablesIfNecessary=true
>>>>>> er.migration.modelNames=DInAdminEOModel
>>>>>> er.extensions.migration.ERXMigration.useDatabaseSpecificMigrations=true
>>>>>> 
>>>>>> DInAdminEOModel.InitialMigrationVersion=1
>>>>>> DInAdminEOModel.MigrationClassPrefix=com.toracom.app.migration.DInAdminEOModel
>>>>>>  
>>>>>> 
>>>>>> 2. Create class com.toracom.app.migration.DInAdminEOModel1.java
>>>>>> 
>>>>>> /////// BEGIN CLASS
>>>>>> package com.toracom.app.migration;
>>>>>> 
>>>>>> import com.webobjects.eoaccess.EOAdaptorChannel;
>>>>>> import com.webobjects.eoaccess.EOModel;
>>>>>> import com.webobjects.eocontrol.EOEditingContext;
>>>>>> import com.webobjects.foundation.NSArray;
>>>>>> 
>>>>>> import er.extensions.migration.ERXMigration;
>>>>>> import er.extensions.migration.ERXModelVersion;
>>>>>> 
>>>>>> public class DInAdminEOModel1 extends ERXMigration {
>>>>>>  public NSArray<ERXModelVersion> modelDependencies() { 
>>>>>>       return null; 
>>>>>>     } 
>>>>>> 
>>>>>> 
>>>>>>  @Override
>>>>>>  public void upgrade(EOEditingContext editingContext, EOAdaptorChannel 
>>>>>> channel, EOModel model) throws Throwable {
>>>>>>          
>>>>>>  }
>>>>>> 
>>>>>>  @Override
>>>>>>  public void downgrade(EOEditingContext editingContext,  
>>>>>> EOAdaptorChannel channel, EOModel model) throws Throwable {
>>>>>>          // TODO Auto-generated method stub
>>>>>>          
>>>>>>  } 
>>>>>> }
>>>>>> 
>>>>>> ////// END CLASS
>>>>>> 
>>>>>> 
>>>>>> 3. Create DInAdminEOModel1_Postgresql_Upgrade.migration file
>>>>>> 
>>>>>> ALTER TABLE parametros ADD COLUMN modulo_cfdivault_habilitado varchar(5);
>>>>>> UDPATE parametros SET modulo_cfdivault_habilitado = 'false';
>>>>>> ALTER TABLE parametros ALTER COLUMN modulo_cfdivault_habilitado SET NOT 
>>>>>> NULL;
>>>>>> 
>>>>>> 
>>>>>> When I run my application never get the SQL code executed. In the 
>>>>>> Application class I load a Parametros entity but I get the following 
>>>>>> error
>>>>>> 
>>>>>> Apr 06 11:38:11 dinadmin[55559] DEBUG NSLog  -  evaluateExpression: 
>>>>>> <com.webobjects.jdbcadaptor.PostgresqlExpression: "SELECT DISTINCT 
>>>>>> t0.directorio_raiz_procesamiento_cfd, t0.email_formato, 
>>>>>> t0.encoding_archivo_fuente, t0.encoding_escritura_cfd, 
>>>>>> t0.encoding_escritura_div_sol, t0.encoding_escritura_xml_co, 
>>>>>> t0.encoding_escritura_xml_impresion, t0.encoding_lectura_jaxb, 
>>>>>> t0.encoding_obtencion_co, t0.encoding_trans_co, t0.fh, t0.fhc, 
>>>>>> t0.formato_fecha_dhtmlxgrid, t0.formato_numero_registro_bd, 
>>>>>> t0.formato_numero_registro_bd_corto, t0.fsh, t0.fshnm, t0.iva, 
>>>>>> t0.logs_debug, t0.logs_path, t0.logs_stdout, t0.metodo_impresion, 
>>>>>> t0.modulo_cfdivault_habilitado, t0.moneda_id, t0.nd, t0.ne, t0.nm, 
>>>>>> t0.nombre_aplicacion, t0.np, t0.ntc, t0.parametros_id, 
>>>>>> t0.retraso_daemon, t0.rfc_fisica, t0.rfc_moral, t0.sistema_inicializado, 
>>>>>> t0.url_birt_viewer, t0.version_comprobante FROM parametros t0" 
>>>>>> withBindings: >
>>>>>> Apr 06 11:38:11 dinadmin[55559] DEBUG NSLog  -  === Rollback Internal 
>>>>>> Transaction
>>>>>> ERROR: column t0.modulo_cfdivault_habilitado does not existat 
>>>>>> org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1608)
>>>>>> at 
>>>>>> org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1343)
>>>>>> at 
>>>>>> org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:194)
>>>>>> at 
>>>>>> org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:451)
>>>>>> at 
>>>>>> org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:336)
>>>>>> 
>>>>>> 
>>>>>> Because the modulo_cfdivault_habilitado column does not exist, so the 
>>>>>> migration's file is never executed.
>>>>>> 
>>>>>> Am I missing something, maybe a missing Framework?
>>>>>> 
>>>>>> Thanks in advance.
>>>>>> 
>>>>>> 
>>>>>> _______________________________
>>>>>> Ing. Miguel Angel Torres Avila
>>>>>> Director General
>>>>>> Tel: +52 (33) 3367 1892
>>>>>> Cel: +52 (33) 3106 8758
>>>>>> E-mail: [email protected]
>>>>>> www.toracom.net
>>>>>> 
>>>>>> Antes de imprimir, piense en el Medio Ambiente. Before printing think 
>>>>>> about the Environment. Avant d'imprimer, pensez à l'Environnement 
>>>>>>  
>>>>>> 
>>>>>> 
>>>>>> _______________________________________________
>>>>>> Do not post admin requests to the list. They will be ignored.
>>>>>> Webobjects-dev mailing list      ([email protected])
>>>>>> Help/Unsubscribe/Update your Subscription:
>>>>>> http://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net
>>>>>> 
>>>>>> This email sent to [email protected]
>>>>> 
>>>>> -- 
>>>>> Chuck Hill             Senior Consultant / VP Development
>>>>> 
>>>>> Practical WebObjects - for developers who want to increase their overall 
>>>>> knowledge of WebObjects or who are trying to solve specific problems.    
>>>>> http://www.global-village.net/products/practical_webobjects
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> _______________________________________________
>>>>> Do not post admin requests to the list. They will be ignored.
>>>>> Webobjects-dev mailing list      ([email protected])
>>>>> Help/Unsubscribe/Update your Subscription:
>>>>> http://lists.apple.com/mailman/options/webobjects-dev/pyu%40mac.com
>>>>> 
>>>>> This email sent to [email protected]
>>>> 
>>> 
>>> 
>>> 
>>> 
>>> _______________________________________________
>>> Do not post admin requests to the list. They will be ignored.
>>> Webobjects-dev mailing list      ([email protected])
>>> Help/Unsubscribe/Update your Subscription:
>>> http://lists.apple.com/mailman/options/webobjects-dev/mschrag%40pobox.com
>>> 
>>> This email sent to [email protected]
>> 
>> _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list      ([email protected])
>> Help/Unsubscribe/Update your Subscription:
>> http://lists.apple.com/mailman/options/webobjects-dev/pyu%40mac.com
>> 
>> This email sent to [email protected]
> 
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list      ([email protected])
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/webobjects-dev/luis.salazar%40toracom.net
> 
> This email sent to [email protected]

_______________________________
Ing. Miguel Angel Torres Avila
Director General
Tel: +52 (33) 3367 1892
Cel: +52 (33) 3106 8758
E-mail: [email protected]
www.toracom.net

Antes de imprimir, piense en el Medio Ambiente. Before printing think about the 
Environment. Avant d'imprimer, pensez à l'Environnement 

 

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to