You are setting your column to "NOT NULL" so if you have existing rows in the
table the alter table will fail unless you provide a default value for the
column.
userTable.existingColumnNamed("password").defaultValue("xxxxxxxx");
then setAllowsNull(false)
----- Original Message -----
From: Gustavo Pizano
To: WebObjects-Dev Apple
Sent: Friday, November 21, 2008 3:47 AM
Subject: Migation failed when updating a table
Hello, well I run the migrationClass0 and it run fine, the db was created and
everything , but then I forgot I needed another attribute in one entity, I used
@Override
public void upgrade(EOEditingContext editingContext, ERXMigrationDatabase
database) throws Throwable {
ERXMigrationTable userTable = database.existingTableNamed("USER");
userTable.newStringColumn("password", 16, false);
}
and when I run I got the following. What Im doing wrong?... thanks
Gustavo
Nov 20 18:37:18 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- Finished initialization after launch: ERXExtensions
Nov 20 18:37:18 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- Finished initialization after launch: ERPrototypes
Nov 20 18:37:18 StockManager[1250] (Application.java:13) INFO
er.extensions.appserver.ERXApplication - Welcome to StockManager !
Nov 20 18:37:18 StockManager[1250] (ERXModelGroup.java:127) WARN
er.extensions.eof.ERXModelGroup - Clearing previous class descriptions
Nov 20 18:37:18 StockManager[1250] (ERXModelGroup.java:845) WARN
er.extensions.eof.ERXModelGroup - The EOModel 'erprototypes' has an empty
connection dictionary.
Nov 20 18:37:18 StockManager[1250] (ERXEntityClassDescription.java:576) WARN
er.extensions.eof.ERXEntityClassDescription - Invalid class name for entity:
PRODUCTXPROVIDER exception: java.lang.ClassNotFoundException:
com.StockManager.eo.EOGenericRecord using
com.webobjects.eocontrol.EOGenericRecord instead
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- Using JDBCPlugIn 'com.webobjects.jdbcadaptor._FrontBasePlugIn' for [EMAIL
PROTECTED]
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- Using JDBCPlugIn 'com.webobjects.jdbcadaptor._FrontBasePlugIn' for [EMAIL
PROTECTED]
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- Using JDBCPlugIn 'com.webobjects.jdbcadaptor._FrontBasePlugIn' for [EMAIL
PROTECTED]
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- connecting with dictionary: {password = "<password deleted for log>";
username = "gustavpicora"; URL = "jdbc:FrontBase://localhost/StockManager"; }
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- === Begin Internal Transaction
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- === Commit Internal Transaction
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- === Begin Internal Transaction
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- Using JDBCPlugIn 'com.webobjects.jdbcadaptor._FrontBasePlugIn' for [EMAIL
PROTECTED]
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- fetching JDBC Info with [EMAIL PROTECTED]
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- connecting with dictionary: {password = "<password deleted for log>";
username = "gustavpicora"; URL = "jdbc:FrontBase://localhost/StockManager"; }
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- connection disconnected.
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- fetching JDBC Info with [EMAIL PROTECTED]
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- connecting with dictionary: {password = "<password deleted for log>";
username = "gustavpicora"; URL = "jdbc:FrontBase://localhost/StockManager"; }
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- evaluateExpression:
<com.webobjects.jdbcadaptor._FrontBasePlugIn$FrontbaseExpression: "UPDATE
"_dbupdater" SET "lockowner" = 'StockManager--1', "updatelock" = 1 WHERE
("modelname" = 'StockManager' AND ("updatelock" = 0 OR "lockowner" =
'StockManager--1'))" withBindings: >
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- === Commit Internal Transaction
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- === Begin Internal Transaction
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- evaluateExpression:
<com.webobjects.jdbcadaptor._FrontBasePlugIn$FrontbaseExpression: "SELECT
t0."version" FROM "_dbupdater" t0 WHERE t0."modelname" = 'StockManager'"
withBindings: >
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- fetch canceled
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- 1 row(s) processed
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- === Commit Internal Transaction
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- === Begin Internal Transaction
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- evaluateExpression:
<com.webobjects.jdbcadaptor._FrontBasePlugIn$FrontbaseExpression: "UPDATE
"_dbupdater" SET "lockowner" = NULL, "updatelock" = 0 WHERE "modelname" =
'StockManager'" withBindings: >
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- === Commit Internal Transaction
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- === Begin Internal Transaction
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- === Commit Internal Transaction
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- === Begin Internal Transaction
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- === Commit Internal Transaction
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- Using JDBCPlugIn 'com.webobjects.jdbcadaptor._FrontBasePlugIn' for [EMAIL
PROTECTED]
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- === Begin Internal Transaction
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- === Commit Internal Transaction
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- === Begin Internal Transaction
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- evaluateExpression:
<com.webobjects.jdbcadaptor._FrontBasePlugIn$FrontbaseExpression: "UPDATE
"_dbupdater" SET "lockowner" = 'StockManager--1', "updatelock" = 1 WHERE
("modelname" = 'StockManager' AND ("updatelock" = 0 OR "lockowner" =
'StockManager--1'))" withBindings: >
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- === Commit Internal Transaction
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- === Begin Internal Transaction
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- evaluateExpression:
<com.webobjects.jdbcadaptor._FrontBasePlugIn$FrontbaseExpression: "SELECT
t0."version" FROM "_dbupdater" t0 WHERE t0."modelname" = 'StockManager'"
withBindings: >
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- fetch canceled
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- 1 row(s) processed
Nov 20 18:37:19 StockManager[1250] (ERXMigrator.java:408) INFO
er.extensions.migration.ERXMigrator - Upgrading StockManager to version 1 with
migration '[EMAIL PROTECTED]'
Nov 20 18:37:19 StockManager[1250] (ERXJDBCUtilities.java:610) INFO
er.extensions.jdbc.ERXJDBCUtilities - Executing alter table USER add
"password" VARCHAR(16) CONSTRAINT NOT_NULL_USER__password NOT NULL
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- === Commit Internal Transaction
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- === Begin Internal Transaction
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- evaluateExpression:
<com.webobjects.jdbcadaptor._FrontBasePlugIn$FrontbaseExpression: "UPDATE
"_dbupdater" SET "lockowner" = NULL, "updatelock" = 0 WHERE "modelname" =
'StockManager'" withBindings: >
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- === Commit Internal Transaction
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- === Begin Internal Transaction
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- === Rollback Internal Transaction
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- === Begin Internal Transaction
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:46) DEBUG NSLog
- === Commit Internal Transaction
Nov 20 18:37:19 StockManager[1250] (ERXApplication.java:1055) ERROR
er.extensions.appserver.ERXApplication - StockManager failed to start.
er.extensions.migration.ERXMigrationFailedException: Migration failed.
at
er.extensions.migration.ERXMigrator$ERXMigrationAction.doPerform(ERXMigrator.java:427)
at
er.extensions.eof.ERXEOAccessUtilities$ChannelAction.perform(ERXEOAccessUtilities.java:1455)
at er.extensions.migration.ERXMigrator.migrateToLatest(ERXMigrator.java:179)
at
er.extensions.appserver.ERXApplication.finishInitialization(ERXApplication.java:956)
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:585)
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:1051)
at com.webobjects.appserver.WOApplication.main(WOApplication.java:548)
at er.extensions.appserver.ERXApplication.main(ERXApplication.java:593)
at stockManager.app.Application.main(Application.java:9)
Caused by: java.sql.SQLException: Syntax error 61. Expected Identifier not
found.
at
com.frontbase.jdbc.FBJErrorMetaData.errorMessageAtIndex(FBJErrorMetaData.java:162)
at
com.frontbase.jdbc.FBJErrorMetaData.getExceptionChain(FBJErrorMetaData.java:194)
at com.frontbase.jdbc.FBJStatement.checkMetaData(FBJStatement.java:472)
at com.frontbase.jdbc.FBJStatement.executeUpdate(FBJStatement.java:262)
at
er.extensions.jdbc.ERXJDBCUtilities.executeUpdateScript(ERXJDBCUtilities.java:612)
at
er.extensions.migration.ERXMigrationColumn.create(ERXMigrationColumn.java:382)
at
er.extensions.migration.ERXMigrationTable._newColumn(ERXMigrationTable.java:224)
at
er.extensions.migration.ERXMigrationTable.newColumn(ERXMigrationTable.java:269)
at
er.extensions.migration.ERXMigrationTable.newStringColumn(ERXMigrationTable.java:282)
at stockManager.app.migration.StockManager1.upgrade(StockManager1.java:25)
at
er.extensions.migration.ERXMigrationDatabase$Migration.upgrade(ERXMigrationDatabase.java:425)
at
er.extensions.migration.ERXMigrator$ERXMigrationAction.doPerform(ERXMigrator.java:410)
... 16 more
Nov 20 18:37:19 StockManager[1250] (ERXNSLogLog4jBridge.java:43) WARN NSLog
- A fatal exception occurred:
er.extensions.migration.ERXMigrationFailedException: Migration failed.
[2008-11-20 18:37:19 CET] <main> [stack trace already printed]
------------------------------------------------------------------------------
_______________________________________________
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/mjsotn%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]