• 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: migrations error
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: migrations error


  • Subject: Re: migrations error
  • From: John Huss <email@hidden>
  • Date: Tue, 01 Nov 2011 11:07:00 -0500

Ah, I didn't really read it either  :-)

Yeah you should just pass the default value and NOT NULL in the newColumn call:

workingTable.newLargeStringColumn("c_password", false, "4004");
workingTable.newLargeStringColumn("c_user_name", false, "theuser");

On Tue, Nov 1, 2011 at 10:37 AM, Ramsey Gurley <email@hidden> wrote:
Oops… just looked more closely at your sql. You're setting values on all the rows, aren't you?  I believe that can be done by simply setting the default value in the new column method, but I'll defer to John on that.  I don't use the defaults so I may be mistaken.

Ramsey

On Nov 1, 2011, at 8:32 AM, Ramsey Gurley wrote:

I think this is commonly handled in a post migration

http://webobjects.mdimension.com/hudson/job/Wonder/javadoc/er/extensions/migration/IERXPostMigration.html

Just make your migration implement that interface, and the post migration method will be called after the tables are created.  From the package documentation:

To perform a "post op", your migration can implement IERXPostMigration instead of IERXMigration, and this adds the additional method:

   public void postUpgrade(EOEditingContext editingContext, EOModel model) throws Throwable;

So as migrations are running in dependency order, ERXMigrator keeps track of "Post Migrations", which will themselves execute in dependency order, but only after a completely successful model migration. So by the time IERXPostMigrations begin to run, all of your EOModels will match the database tables. postUpgrades also each run in a transaction. editingContext.saveChanges() will be called for you after postUpgrade is done.


Ramsey

On Nov 1, 2011, at 7:06 AM, Theodore Petrosky wrote:

I use migrations for all of my company stuff. They are great!!!!

I am running into a problem:

public void upgrade(EOEditingContext editingContext, ERXMigrationDatabase database) throws Throwable {

ERXMigrationTable workingTable = database.existingTableNamed("t_employee");

workingTable.newLargeStringColumn("c_password", true);
workingTable.newLargeStringColumn("c_user_name", true);

ERXJDBCUtilities.executeUpdate(database.adaptorChannel(), "update t_employee " +
"set c_password = '4004'");

ERXJDBCUtilities.executeUpdate(database.adaptorChannel(), "update t_employee " +
"set c_user_name = 'theuser'");

workingTable.existingColumnNamed("c_password").setAllowsNull(false);
workingTable.existingColumnNamed("c_user_name").setAllowsNull(false);

}

I get an error:

ERROR: cannot ALTER TABLE "t_employee" because it has pending trigger events

migrations doesn't like it when I try to update these two columns in one pass.

My solution is to create a migration after this one and put (obviously commenting out those lines in the first migration):

public void upgrade(EOEditingContext editingContext, ERXMigrationDatabase database) throws Throwable {

ERXMigrationTable workingTable = database.existingTableNamed("t_employee");

ERXJDBCUtilities.executeUpdate(database.adaptorChannel(), "update t_employee " +
"set c_user_name = 'theuser'");

workingTable.existingColumnNamed("c_user_name").setAllowsNull(false);

}

can this be done in one pass?

Ted


_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (email@hidden)

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


 _______________________________________________
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

References: 
 >migrations error (From: Theodore Petrosky <email@hidden>)
 >Re: migrations error (From: Ramsey Gurley <email@hidden>)
 >Re: migrations error (From: Ramsey Gurley <email@hidden>)

  • Prev by Date: Re: migrations error
  • Next by Date: Re: migrations error
  • Previous by thread: Re: migrations error
  • Next by thread: Re: migrations error
  • Index(es):
    • Date
    • Thread