Quantcast
Channel: Liquibase Forums
Viewing all 2993 articles
Browse latest View live

Re : Ant task updates

$
0
0
Sorry for the slow response, I always appreciate any help. 

For now, I'm thinking we should keep the ant code in liquibase-core and reduce the error messages if Ant is not available. I don't think the additional jar to manage is worth it for the ant support. 

General improvements to the Ant codebase would be great. There is some functionality that have not made it into Ant yet, and general improved code is always good. Send a pull request when you are ready or if you have questions part way though.

Nathan

Re : generateChangeLog ignores foreign keys, DB engine types (InnoDB)

$
0
0
The foreign keys are between InnoDB tables? I don't remember off hand if myisam stores FK metadata even though they don't support FKs. 

Also, are they between tables in different databases/schemas? Or all in the same database?

Unfortunately the DBEngine is database-specific functionality that is not captured in liquibase and so needs to be added yourself. The generateChangeLog logic tries to handle normal cross-database features but doesn't yet get into more unique attributes.

Nathan

Re : int array type for HQSLDB

$
0
0
You can also use <modifySql> to replace portions of the generated SQL if you don't want to re-write the entire SQL.

Nathan

Re : New Extension: Liquibase Vertica support

$
0
0
Thanks for the work on the extension!

Nathan

Re : Custom Extensions not available in OSGi build

Re : Enhancing Main.java to help other programs call it.

$
0
0
Thanks, I'll take a look! Has been hectic for me as well so it may be a little bit until I get to it.

Nathan

Re : Fluent interface pattern (setter returning 'this') conflicts with JSF

$
0
0
With your workaround, did it still look like the problem was caused by the setters returning "this" ?

Nathan

Re : Slow query performance on Oracle using ALL_TABLES and ALL_TAB_COMMENTS


Re : Memory consumption for large files

$
0
0
The fix from 1509 is in 3.1.1 as well. I haven't seen any memory issues with 3.1.1 lately.

Would you be able to provide a memory dump I could look at to determine where the problem is?

Nathan

Re : Fluent interface pattern (setter returning 'this') conflicts with JSF

$
0
0
Unfortunately, yes.


What I did was an "abstraction of getters/setters", for example with AddColumn that I needed to use "defaultValue" with Expression Language:

I had to create a AddColumnExt class with has:
  • an attribute called instance, that is the original AddColumn object;
  • getter that returns instance.getDefaultValue();
  • void setter(String value) that calls instance.setDefaultValue passing value as parameter.

Using that approach, I can use expression language normally, like:

<h:inputText value="#{myBean.addColumnField.defaultValue}" /> 

And when it's possible to bind, I do:

<h:inputText value="#{myBean.addColumnField.instance.someField}" /> 

Re : Fluent interface pattern (setter returning 'this') conflicts with JSF

$
0
0
That is disappointing it causes problems. I don't think I'll change the interface at this point because it makes other interactions much easier and would be a breaking API change for people.

If there is enough problems from others I may look for alternative solutions.

Nathan

Re : Making add/dropColumn and create/dropTable more defensive

$
0
0
This is actually very similar to functionality I just started adding. I'm experimenting with adding verifyUpdate, verifyUpdateDetails, verifyRollback and verifyRollbackDetails methods to each of the change implementations with logic on how to check them. The difference between the *Details and non-details methods is that the regular method checks , for example, that a column was added while the *Details methods check all the other attributes like the data type, if it is a primary key, etc.

I am implementing it within java rather than SQL, where I use the snapshot function to grab the state of the object to check and then inspect it. The reason for this is it gives us more flexibility than what is available through SQL, but it has the limitation that we cannot embed the checks into updateSQL for example.

My initial use for the methods is for automated generative testing of change implemenations, but I see a lot of other advantages such as being able to run an update with automatic "did it run" checks, easier bootstrapping of an existing project, and more. I'm hoping to have it finished up next week and will have a pull request for people to look at.

Nathan

Re : Release-Version of liquibase-maxdb?

Re : setting databaseChangeLog/LockTableName via Maven Plugin

$
0
0
With 3.x there is the changelogCatalogName and changelogSchemaName attributes you can use in maven to control where the databaseChangeLog table goes. Have you tried those?

Nathan

Re : Slow query performance on Oracle using ALL_TABLES and ALL_TAB_COMMENTS

$
0
0
Yes it is much faster.  Omitting that portion of the query runs in about a second.

Thank you for creating the ticket as well.

Lonny

Re : Issues migrating from Liquibase 2.0 to 3.1

$
0
0
Hi
 Sorry for the delayed response. please see the below log messages from my installer logs
 
 
SEVERE 3/27/14 3:50 PM:liquibase: Cannot load class 'liquibase/snapshot/ResultSetCache$ResultSetExtractor$1.class' in classloader: java.net.URLClassLoader@1f66cff.  Reason: java.lang.IllegalAccessError: class liquibase.snapshot.ResultSetCache$ResultSetExtractor$1 cannot access its superclass liquibase.executor.jvm.ColumnMapRowMapper
java.lang.IllegalAccessError: class liquibase.snapshot.ResultSetCache$ResultSetExtractor$1 cannot access its superclass liquibase.executor.jvm.ColumnMapRowMapper
 at java.lang.ClassLoader.defineClass1(Native Method)
 at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
 at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
 at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
 at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
 at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
 at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
 at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:410)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
 at liquibase.servicelocator.DefaultPackageScanClassResolver.addIfMatching(DefaultPackageScanClassResolver.java:361)
 at liquibase.servicelocator.DefaultPackageScanClassResolver.loadImplementationsInJar(DefaultPackageScanClassResolver.java:329)
 at liquibase.servicelocator.DefaultPackageScanClassResolver.find(DefaultPackageScanClassResolver.java:207)
 at liquibase.servicelocator.DefaultPackageScanClassResolver.find(DefaultPackageScanClassResolver.java:113)
 at liquibase.servicelocator.DefaultPackageScanClassResolver.findImplementations(DefaultPackageScanClassResolver.java:83)
 at liquibase.servicelocator.ServiceLocator.findClassesImpl(ServiceLocator.java:170)
 at liquibase.servicelocator.ServiceLocator.findClasses(ServiceLocator.java:145)
 at liquibase.servicelocator.ServiceLocator.findClass(ServiceLocator.java:109)
 at liquibase.servicelocator.ServiceLocator.newInstance(ServiceLocator.java:158)
 at liquibase.logging.LogFactory.getLogger(LogFactory.java:17)
 at liquibase.logging.LogFactory.getLogger(LogFactory.java:30)
 at liquibase.integration.commandline.Main.doMigration(Main.java:599)
 at liquibase.integration.commandline.Main.main(Main.java:116)
 
SEVERE 3/27/14 3:50 PM:liquibase: Cannot load class 'liquibase/lockservice/StandardLockService.class' in classloader: java.net.URLClassLoader@1f66cff.  Reason: java.lang.IncompatibleClassChangeError: Implementing class
java.lang.IncompatibleClassChangeError: Implementing class
 at java.lang.ClassLoader.defineClass1(Native Method)
 at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
 at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
 at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
 at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
 at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
 at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
 at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:410)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
 at liquibase.servicelocator.DefaultPackageScanClassResolver.addIfMatching(DefaultPackageScanClassResolver.java:361)
 at liquibase.servicelocator.DefaultPackageScanClassResolver.loadImplementationsInJar(DefaultPackageScanClassResolver.java:329)
 at liquibase.servicelocator.DefaultPackageScanClassResolver.find(DefaultPackageScanClassResolver.java:207)
 at liquibase.servicelocator.DefaultPackageScanClassResolver.find(DefaultPackageScanClassResolver.java:113)
 at liquibase.servicelocator.DefaultPackageScanClassResolver.findImplementations(DefaultPackageScanClassResolver.java:83)
 at liquibase.servicelocator.ServiceLocator.findClassesImpl(ServiceLocator.java:170)
 at liquibase.servicelocator.ServiceLocator.findClasses(ServiceLocator.java:145)
 at liquibase.servicelocator.ServiceLocator.findClass(ServiceLocator.java:109)
 at liquibase.servicelocator.ServiceLocator.newInstance(ServiceLocator.java:158)
 at liquibase.logging.LogFactory.getLogger(LogFactory.java:17)
 at liquibase.logging.LogFactory.getLogger(LogFactory.java:30)
 at liquibase.integration.commandline.Main.doMigration(Main.java:599)
 at liquibase.integration.commandline.Main.main(Main.java:116)

Re : Making add/dropColumn and create/dropTable more defensive

Re : Release-Version of liquibase-maxdb?

$
0
0
OK, thanks. If that can be fixed within liquibase-core then the extension is fine as far as I can tell.

BTW: will that really be 3.2.0 or rather 3.1.2? For easier consumption on our side I'd favour the micro-change (threes some legal stuff that we have to go through for even minor version increases...)

Thanks,
Marc

How to use onSqlOutput in formatted sql mode

$
0
0
Hi 
I'm using Liquibase in "formatted sql" mode (not XML syntax). I want each change set to have a precondition which is checked when generating the SQL using updateSQL. I tried the folowing syntax using "onSqlOutput:TEST", but it does not work:

--liquibase formatted sql

--changeset mike:32
--preconditions onSqlOutput:TEST onFail:HALT onError:HALT
--precondition-sql-check expectedResult: <here comes my SQL condition>

By the way, when using update (instead of updateSQL) it works as expected.

Thanks for any help,
Mike

Re : How to use onSqlOutput in formatted sql mode

$
0
0
Try onUpdateSql insetad of onSqlOuptut:

--changeset mike:32
--preconditions onUpdateSql:TEST onFail:HALT onError:HALT
--precondition-sql-check expectedResult: <here comes my SQL condition>

Nathan
Viewing all 2993 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>