Or move your own startup code to finishInitialization() instead.
On Wed, Apr 6, 2011 at 1:07 PM, Miguel Angel Torres Avila <
[email protected]> wrote:
> 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
>
> newERXJDBCConnectionAnalyzer(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/johnthuss%40gmail.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/archive%40mail-archive.com
This email sent to [email protected]