• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: First Time Database Migration fail
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: First Time Database Migration fail


  • Subject: Re: First Time Database Migration fail
  • From: John Huss <email@hidden>
  • Date: Thu, 17 Mar 2011 09:29:15 -0500

It look like you have some models objects marked as shared based on this in the stack trace:
_preloadSharedObjectsWithModel

My guess is that this is not supported (or is a bug, depending on how you look at it).

John

On Thu, Mar 17, 2011 at 5:36 AM, Yung-Luen Lan <email@hidden> wrote:
Hi,

I have a project setup with ERXMigration. The migration works except
the first time database initialization.

That is, I have a newly installed server with an empty database and I
want my project create those tables automatically.
But I get errors like this:

Mar 17 17:56:43 MyWebApp[52666] (ERXDatabaseContextDelegate.java:177)
INFO   - Database Exception occured: ERROR: relation "preference" does
not exist
<<Stack Trace>>

Mar 17 17:56:43 MyWebApp[52666] (ERXApplication.java:1307) ERROR  -
MyWebApp failed to start.
<<Stack Trace>>

Mar 17 17:56:43 MyWebApp[52666] (ERXNSLogLog4jBridge.java:43) WARN   -
A fatal exception occurred: EvaluateExpression failed:
<com.webobjects.jdbcadaptor.PostgresqlExpression: "SELECT t0.key,
t0.pID, t0.value FROM Preference t0 ORDER BY t0.key DESC"
withBindings: >:
   Next exception:SQL State:42P01 -- error code: 0 -- msg: ERROR:
relation "preference" does not exist
<<Stack Trace>>


where preference is one of my data model. Stack trace was listed as
the following. I can create those tables by running "Generate SQL" in
Eclipse, but that's not a friendly way to install a webapp. Any
insight about this is appreciated.

My Database0.java look like this:

public class Database0 extends Migration {

// downgrade omitted

public void upgrade(EOEditingContext ec, ERXMigrationDatabase
database) throws Throwable {
       ERXMigrationTable bookTable = database.newTableNamed("Book");
       bookTable.newStringColumn("annotation", 1024, true);
       bookTable.newStringColumn("barcode", 64, false);
       bookTable.newIntegerColumn("bookID", false);
       bookTable.newIntBooleanColumn("duplex", false);
       bookTable.create();
       bookTable.setPrimaryKey("bookID");

       ERXMigrationTable preferenceTable = database.newTableNamed("Preference");
       preferenceTable.newStringColumn("key", 128, false);
       preferenceTable.newIntegerColumn("pID", false);
       preferenceTable.newStringColumn("value", 1024, false);
       preferenceTable.create();
       preferenceTable.setPrimaryKey("pID");
       // ...
}
}

And I set the properties:

# Migrations
er.migration.migrateAtStartup=true
er.migration.createTablesIfNecessary=true
er.migration.modelNames=Database
Database.MigrationClassPrefix=com.example.migration.Database
dbConnectURLGLOBAL=jdbc:postgresql://localhost/mydb
dbConnectUserGLOBAL=postgres
#Database.InitialMigrationVersion=0

<<Stack Trace>>
 Position: 38at
org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2102)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1835)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:500)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:374)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:366)
at com.webobjects.jdbcadaptor.JDBCChannel._bindInputVariablesWithBindingsAndExecute(JDBCChannel.java:272)
at com.webobjects.jdbcadaptor.JDBCChannel._evaluateExpression(JDBCChannel.java:337)
at com.webobjects.jdbcadaptor.JDBCChannel.evaluateExpression(JDBCChannel.java:296)
at com.webobjects.jdbcadaptor.JDBCChannel.selectAttributes(JDBCChannel.java:220)
at com.webobjects.eoaccess.EODatabaseChannel._selectWithFetchSpecificationEditingContext(EODatabaseChannel.java:897)
at com.webobjects.eoaccess.EODatabaseChannel.selectObjectsWithFetchSpecification(EODatabaseChannel.java:234)
at com.webobjects.eoaccess.EODatabaseContext._objectsWithFetchSpecificationEditingContext(EODatabaseContext.java:3055)
at com.webobjects.eoaccess.EODatabaseContext.objectsWithFetchSpecification(EODatabaseContext.java:3195)
at com.webobjects.eocontrol.EOObjectStoreCoordinator.objectsWithFetchSpecification(EOObjectStoreCoordinator.java:488)
at com.webobjects.eocontrol.EOEditingContext.objectsWithFetchSpecification(EOEditingContext.java:4069)
at com.webobjects.eocontrol.EOSharedEditingContext.bindObjectsWithFetchSpecification(EOSharedEditingContext.java:401)
at com.webobjects.eoaccess.EODatabaseContext._preloadSharedObjectsWithModel(EODatabaseContext.java:1217)
at com.webobjects.eoaccess.EODatabaseContext.registeredDatabaseContextForModel(EODatabaseContext.java:1012)
at com.webobjects.eoaccess.EODatabaseContext.registeredDatabaseContextForModel(EODatabaseContext.java:1033)
at er.extensions.jdbc.ERXJDBCUtilities.databaseProductName(ERXJDBCUtilities.java:826)
at er.extensions.migration.ERXMigrator._buildDependenciesForModel(ERXMigrator.java:352)
at er.extensions.migration.ERXMigrator._buildDependenciesForModelsNamed(ERXMigrator.java:275)
at er.extensions.migration.ERXMigrator.migrateToLatest(ERXMigrator.java:184)
at er.extensions.appserver.ERXApplication.finishInitialization(ERXApplication.java:1186)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.webobjects.foundation.NSSelector._safeInvokeMethod(NSSelector.java:122)
at com.webobjects.foundation.NSNotificationCenter$_Entry.invokeMethod(NSNotificationCenter.java:588)
at com.webobjects.foundation.NSNotificationCenter.postNotification(NSNotificationCenter.java:532)
at com.webobjects.foundation.NSNotificationCenter.postNotification(NSNotificationCenter.java:546)
at com.webobjects.appserver.WOApplication.run(WOApplication.java:1229)
at er.extensions.appserver.ERXApplication.run(ERXApplication.java:1303)
at com.webobjects.appserver.WOApplication.main(WOApplication.java:548)
at er.extensions.appserver.ERXApplication.main(ERXApplication.java:783)
at com.example.app.Application.main(Application.java:22)


       at com.webobjects.jdbcadaptor.JDBCContext._jdbcErrorWithChannel(JDBCContext.java:170)
       at com.webobjects.jdbcadaptor.JDBCChannel._evaluateExpression(JDBCChannel.java:344)
       at com.webobjects.jdbcadaptor.JDBCChannel.evaluateExpression(JDBCChannel.java:296)
       at com.webobjects.jdbcadaptor.JDBCChannel.selectAttributes(JDBCChannel.java:220)
       at com.webobjects.eoaccess.EODatabaseChannel._selectWithFetchSpecificationEditingContext(EODatabaseChannel.java:897)
       at com.webobjects.eoaccess.EODatabaseChannel.selectObjectsWithFetchSpecification(EODatabaseChannel.java:234)
       at com.webobjects.eoaccess.EODatabaseContext._objectsWithFetchSpecificationEditingContext(EODatabaseContext.java:3055)
       at com.webobjects.eoaccess.EODatabaseContext.objectsWithFetchSpecification(EODatabaseContext.java:3195)
       at com.webobjects.eocontrol.EOObjectStoreCoordinator.objectsWithFetchSpecification(EOObjectStoreCoordinator.java:488)
       at com.webobjects.eocontrol.EOEditingContext.objectsWithFetchSpecification(EOEditingContext.java:4069)
       at com.webobjects.eocontrol.EOSharedEditingContext.bindObjectsWithFetchSpecification(EOSharedEditingContext.java:401)
       at com.webobjects.eoaccess.EODatabaseContext._preloadSharedObjectsWithModel(EODatabaseContext.java:1217)
       at com.webobjects.eoaccess.EODatabaseContext.registeredDatabaseContextForModel(EODatabaseContext.java:1012)
       at com.webobjects.eoaccess.EODatabaseContext.registeredDatabaseContextForModel(EODatabaseContext.java:1033)
       at er.extensions.jdbc.ERXJDBCUtilities.databaseProductName(ERXJDBCUtilities.java:826)
       at er.extensions.migration.ERXMigrator._buildDependenciesForModel(ERXMigrator.java:352)
       at er.extensions.migration.ERXMigrator._buildDependenciesForModelsNamed(ERXMigrator.java:275)
       at er.extensions.migration.ERXMigrator.migrateToLatest(ERXMigrator.java:184)
       at er.extensions.appserver.ERXApplication.finishInitialization(ERXApplication.java:1186)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:597)
       at com.webobjects.foundation.NSSelector._safeInvokeMethod(NSSelector.java:122)
       at com.webobjects.foundation.NSNotificationCenter$_Entry.invokeMethod(NSNotificationCenter.java:588)
       at com.webobjects.foundation.NSNotificationCenter.postNotification(NSNotificationCenter.java:532)
       at com.webobjects.foundation.NSNotificationCenter.postNotification(NSNotificationCenter.java:546)
       at com.webobjects.appserver.WOApplication.run(WOApplication.java:1229)
       at er.extensions.appserver.ERXApplication.run(ERXApplication.java:1303)
       at com.webobjects.appserver.WOApplication.main(WOApplication.java:548)
       at er.extensions.appserver.ERXApplication.main(ERXApplication.java:783)
       at com.example.app.Application.main(Application.java:22)



Regards,
yllan
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

  • Follow-Ups:
    • Re: First Time Database Migration fail
      • From: Yung-Luen Lan <email@hidden>
References: 
 >First Time Database Migration fail (From: Yung-Luen Lan <email@hidden>)

  • Prev by Date: Re: Webobjects-dev Digest, Vol 8, Issue 132
  • Next by Date: Re: Memory control
  • Previous by thread: First Time Database Migration fail
  • Next by thread: Re: First Time Database Migration fail
  • Index(es):
    • Date
    • Thread