But when didFinishLaunching happens the app is already accepting requests (if concurrent handling is turned on), isn't it? I thought so; if so, that's not a good place to do something that your app requires to run correctly.
John On Wed, Apr 6, 2011 at 2:02 PM, Miguel Angel Torres Avila < [email protected]> wrote: > Thanks Chuck, I implemented the third option and worked like a charm! > > > On Apr 6, 2011, at 1:46 PM, Chuck Hill wrote: > > I will suggest not doing that in a Wonder app. :-) I think you should > move the code. There are a few choices: > > 1. Use this notification: > /** > * Notification to post when all application initialization processes > are complete (including migrations) > */ > public static final String > ApplicationDidFinishInitializationNotification = > "NSApplicationDidFinishInitializationNotification"; > > > 2. Use this method: > /** > * Called after migrations finish running. > * @param migrator the migrator that was used > */ > protected void migrationsDidRun(ERXMigrator migrator) { > // DO NOTHING > } > > 3. Use this method: > /** > * Called when the application posts > * {@link WOApplication#ApplicationDidFinishLaunchingNotification}. > * Override this to perform application specific tasks after the > application > * has been initialized. THis is a good spot to perform batch application > * tasks. > */ > public void didFinishLaunching() { > } > > Chuck > > > On Apr 6, 2011, at 11:07 AM, Miguel Angel Torres Avila 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. > > > > _______________________________________________ > 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] > > > > > _______________________________________________ > 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/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]
