Re: Drift 1.4.0 released.
On Tue, Nov 29, 2011 at 6:13 PM, Matt macourt...@gmail.com wrote: 1.4.2 is out now and should work with both Clojure 1.2.1 and 1.3.0. However, Leiningen currently doesn't work with Clojure 1.3.0. At work, I actually have a project.clj with Clojure 1.3.0 in the dependencies, and a Clojure 1.2.1 in the dev-dependencies to make Leiningen work. The best thing to do here is to keep the Leiningen plugin in its own project that runs inside the Leiningen process. Then when you need to run code in the project itself, use eval-in-project. That way you don't have to worry about Clojure version mismatches. -Phil -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Drift 1.4.0 released.
Confirmed, 1.4.2-SNAPSHOT works with 1.3.0 now, thanks for the help. Edmund On 27/11/2011 16:23, Matt wrote: I just sent you a pull request to fix the Clojure 1.3 incompatibility. Also, you may want to use the current-version and update-version functions in drift-db.migrate instead of your own home grown functions. Though you would have to create your own initialize function to initialize the drift-db flavor to mysql. -Matt On Nov 27, 9:25 am, Edmund edmundsjack...@gmail.com wrote: Bingo! Thanks for that, version 1.3.0 incompatibility it is. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Drift 1.4.0 released.
1.4.2 is out now and should work with both Clojure 1.2.1 and 1.3.0. However, Leiningen currently doesn't work with Clojure 1.3.0. At work, I actually have a project.clj with Clojure 1.3.0 in the dependencies, and a Clojure 1.2.1 in the dev-dependencies to make Leiningen work. -Matt On Nov 29, 5:36 am, Edmund edmundsjack...@gmail.com wrote: Confirmed, 1.4.2-SNAPSHOT works with 1.3.0 now, thanks for the help. Edmund On 27/11/2011 16:23, Matt wrote: I just sent you a pull request to fix the Clojure 1.3 incompatibility. Also, you may want to use the current-version and update-version functions in drift-db.migrate instead of your own home grown functions. Though you would have to create your own initialize function to initialize the drift-db flavor to mysql. -Matt On Nov 27, 9:25 am, Edmund edmundsjack...@gmail.com wrote: Bingo! Thanks for that, version 1.3.0 incompatibility it is. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Drift 1.4.0 released.
Sadly, there is no improvement. I've made a minimal project to demonstrate. Literally - lein new tdrift - modify project.clj - add migration-config.clj - add appropriate migration directory - lein deps - lein create-migration I've put it up on github (https://github.com/ejackson/tdrift). Perhaps if we can git it to work we can get to the bottom of this ? Thank for the help here, Edmund On 27/11/2011 00:39, Matt wrote: It looks like a bug in Drift. Try adding an init function which takes one argument but doesn't do anything. Your new migrate-config should look something like: (defn migrate-config [] {:init (fn [_] ) :directory /db/migrations :current-version db-version :update-version update-db-version}) Let me know if that does the trick and I'll fix the bug in Drift. On Nov 26, 8:31 am, Edmund edmundsjack...@gmail.com wrote: Hello, Thanks for this library, it'll really help me out. I'm a little stuck on getting bootstrapped, can you perhaps give me some guidance ? Basically I'm stuck at step 5, attempting to create my first migration, what am I missing ? Thanks, Edmund - Steps taken 1. Added to :dev-dependencies in project.clj [drift 1.4.0] [org.drift-db/drift-db-mysql 1.0.4] 2. Created a table to hold the version number inserted 0 create table schema_migrations ( version int not null primary key ) engine InnoDB; 3. Created src/config/migrate_config.clj (ns config.migrate-config (:require [clojure.contrib.sql :as sql])) (defonce DB (atom {:classname com.mysql.jdbc.Driver :subprotocol mysql :subname //mysql-server:3306/bookkeeper :user user :password password :auto-commit true :fetch-size 500})) (defn db-version [] (sql/with-connection DB (sql/with-query-results res [select version from schema_migrations limit 1] (:version (first res) (defn update-db-version [version] (sql/with-connection DB (sql/insert-values :schema_migrations [:version] [version]))) (defn migrate-config [] {:directory /db/migrations :current-version db-version :update-version update-db-version}) 4. Run lein deps to grab the deps 5. Attempted to create a migration, or get something going $ lein create-migration first Listening for transport dt_socket at address: 57528 Exception in thread main java.lang.RuntimeException: java.lang.NoSuchMethodError: clojure.lang.KeywordLookupSite.init(ILclojure/lang/Keyword;)V at clojure.lang.Util.runtimeException(Util.java:165) at clojure.lang.Compiler.eval(Compiler.java:6476) at clojure.lang.Compiler.eval(Compiler.java:6455) at clojure.lang.Compiler.load(Compiler.java:6902) at clojure.lang.RT.loadResourceScript(RT.java:357) at clojure.lang.RT.loadResourceScript(RT.java:348) at clojure.lang.RT.load(RT.java:427) at clojure.lang.RT.load(RT.java:398) at clojure.core$load$fn__4610.invoke(core.clj:5386) at clojure.core$load.doInvoke(core.clj:5385) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:5200) at clojure.core$load_lib.doInvoke(core.clj:5237) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:602) at clojure.core$load_libs.doInvoke(core.clj:5271) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:602) at clojure.core$require.doInvoke(core.clj:5352) at clojure.lang.RestFn.invoke(RestFn.java:421) at drift.generator$eval5$loading__4505__auto6.invoke(generator.clj:1) at drift.generator$eval5.invoke(generator.clj:1) at clojure.lang.Compiler.eval(Compiler.java:6465) at clojure.lang.Compiler.eval(Compiler.java:6455) at clojure.lang.Compiler.load(Compiler.java:6902) at clojure.lang.RT.loadResourceScript(RT.java:357) at clojure.lang.RT.loadResourceScript(RT.java:348) at clojure.lang.RT.load(RT.java:427) at clojure.lang.RT.load(RT.java:398) at clojure.core$load$fn__4610.invoke(core.clj:5386) at clojure.core$load.doInvoke(core.clj:5385) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:5200) at clojure.core$load_lib.doInvoke(core.clj:5237) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:602) at clojure.core$load_libs.doInvoke(core.clj:5271) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:602) at clojure.core$require.doInvoke(core.clj:5352) at clojure.lang.RestFn.invoke(RestFn.java:408) at user$eval1.invoke(NO_SOURCE_FILE:1) at clojure.lang.Compiler.eval(Compiler.java:6465) at clojure.lang.Compiler.eval(Compiler.java:6454) at clojure.lang.Compiler.eval(Compiler.java:6431) at clojure.core$eval.invoke(core.clj:2795) at clojure.main$eval_opt.invoke(main.clj:296) at clojure.main$initialize.invoke(main.clj:315) at clojure.main$null_opt.invoke(main.clj:348) at clojure.main$main.doInvoke(main.clj:426) at clojure.lang.RestFn.invoke(RestFn.java:421) at
Re: Drift 1.4.0 released.
My guess would be a clojure version mismatch, based on the stacktrace. Have you tried changing your project to use clojure 1.2.1? - Chris -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Drift 1.4.0 released.
Bingo! Thanks for that, version 1.3.0 incompatibility it is. On 27/11/2011 13:41, Chris Perkins wrote: My guess would be a clojure version mismatch, based on the stacktrace. Have you tried changing your project to use clojure 1.2.1? - Chris -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Drift 1.4.0 released.
I just sent you a pull request to fix the Clojure 1.3 incompatibility. Also, you may want to use the current-version and update-version functions in drift-db.migrate instead of your own home grown functions. Though you would have to create your own initialize function to initialize the drift-db flavor to mysql. -Matt On Nov 27, 9:25 am, Edmund edmundsjack...@gmail.com wrote: Bingo! Thanks for that, version 1.3.0 incompatibility it is. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: [ANN] Drift 1.4.0 released.
Hello, Thanks for this library, it'll really help me out. I'm a little stuck on getting bootstrapped, can you perhaps give me some guidance ? Basically I'm stuck at step 5, attempting to create my first migration, what am I missing ? Thanks, Edmund - Steps taken 1. Added to :dev-dependencies in project.clj [drift 1.4.0] [org.drift-db/drift-db-mysql 1.0.4] 2. Created a table to hold the version number inserted 0 create table schema_migrations ( version int not null primary key ) engine InnoDB; 3. Created src/config/migrate_config.clj (ns config.migrate-config (:require [clojure.contrib.sql :as sql])) (defonce DB (atom {:classname com.mysql.jdbc.Driver :subprotocol mysql :subname //mysql-server:3306/bookkeeper :user user :password password :auto-commit true :fetch-size 500})) (defn db-version [] (sql/with-connection DB (sql/with-query-results res [select version from schema_migrations limit 1] (:version (first res) (defn update-db-version [version] (sql/with-connection DB (sql/insert-values :schema_migrations [:version] [version]))) (defn migrate-config [] {:directory /db/migrations :current-version db-version :update-version update-db-version}) 4. Run lein deps to grab the deps 5. Attempted to create a migration, or get something going $ lein create-migration first Listening for transport dt_socket at address: 57528 Exception in thread main java.lang.RuntimeException: java.lang.NoSuchMethodError: clojure.lang.KeywordLookupSite.init(ILclojure/lang/Keyword;)V at clojure.lang.Util.runtimeException(Util.java:165) at clojure.lang.Compiler.eval(Compiler.java:6476) at clojure.lang.Compiler.eval(Compiler.java:6455) at clojure.lang.Compiler.load(Compiler.java:6902) at clojure.lang.RT.loadResourceScript(RT.java:357) at clojure.lang.RT.loadResourceScript(RT.java:348) at clojure.lang.RT.load(RT.java:427) at clojure.lang.RT.load(RT.java:398) at clojure.core$load$fn__4610.invoke(core.clj:5386) at clojure.core$load.doInvoke(core.clj:5385) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:5200) at clojure.core$load_lib.doInvoke(core.clj:5237) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:602) at clojure.core$load_libs.doInvoke(core.clj:5271) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:602) at clojure.core$require.doInvoke(core.clj:5352) at clojure.lang.RestFn.invoke(RestFn.java:421) at drift.generator$eval5$loading__4505__auto6.invoke(generator.clj:1) at drift.generator$eval5.invoke(generator.clj:1) at clojure.lang.Compiler.eval(Compiler.java:6465) at clojure.lang.Compiler.eval(Compiler.java:6455) at clojure.lang.Compiler.load(Compiler.java:6902) at clojure.lang.RT.loadResourceScript(RT.java:357) at clojure.lang.RT.loadResourceScript(RT.java:348) at clojure.lang.RT.load(RT.java:427) at clojure.lang.RT.load(RT.java:398) at clojure.core$load$fn__4610.invoke(core.clj:5386) at clojure.core$load.doInvoke(core.clj:5385) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:5200) at clojure.core$load_lib.doInvoke(core.clj:5237) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:602) at clojure.core$load_libs.doInvoke(core.clj:5271) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:602) at clojure.core$require.doInvoke(core.clj:5352) at clojure.lang.RestFn.invoke(RestFn.java:408) at user$eval1.invoke(NO_SOURCE_FILE:1) at clojure.lang.Compiler.eval(Compiler.java:6465) at clojure.lang.Compiler.eval(Compiler.java:6454) at clojure.lang.Compiler.eval(Compiler.java:6431) at clojure.core$eval.invoke(core.clj:2795) at clojure.main$eval_opt.invoke(main.clj:296) at clojure.main$initialize.invoke(main.clj:315) at clojure.main$null_opt.invoke(main.clj:348) at clojure.main$main.doInvoke(main.clj:426) at clojure.lang.RestFn.invoke(RestFn.java:421) at clojure.lang.Var.invoke(Var.java:405) at clojure.lang.AFn.applyToHelper(AFn.java:163) at clojure.lang.Var.applyTo(Var.java:518) at clojure.main.main(main.java:37) Caused by: java.lang.NoSuchMethodError: clojure.lang.KeywordLookupSite.init(ILclojure/lang/Keyword;)V at drift.core$find_init_fn.clinit(core.clj:25) at drift.core__init.load(Unknown Source) at
Re: Drift 1.4.0 released.
It looks like a bug in Drift. Try adding an init function which takes one argument but doesn't do anything. Your new migrate-config should look something like: (defn migrate-config [] {:init (fn [_] ) :directory /db/migrations :current-version db-version :update-version update-db-version}) Let me know if that does the trick and I'll fix the bug in Drift. On Nov 26, 8:31 am, Edmund edmundsjack...@gmail.com wrote: Hello, Thanks for this library, it'll really help me out. I'm a little stuck on getting bootstrapped, can you perhaps give me some guidance ? Basically I'm stuck at step 5, attempting to create my first migration, what am I missing ? Thanks, Edmund - Steps taken 1. Added to :dev-dependencies in project.clj [drift 1.4.0] [org.drift-db/drift-db-mysql 1.0.4] 2. Created a table to hold the version number inserted 0 create table schema_migrations ( version int not null primary key ) engine InnoDB; 3. Created src/config/migrate_config.clj (ns config.migrate-config (:require [clojure.contrib.sql :as sql])) (defonce DB (atom {:classname com.mysql.jdbc.Driver :subprotocol mysql :subname //mysql-server:3306/bookkeeper :user user :password password :auto-commit true :fetch-size 500})) (defn db-version [] (sql/with-connection DB (sql/with-query-results res [select version from schema_migrations limit 1] (:version (first res) (defn update-db-version [version] (sql/with-connection DB (sql/insert-values :schema_migrations [:version] [version]))) (defn migrate-config [] {:directory /db/migrations :current-version db-version :update-version update-db-version}) 4. Run lein deps to grab the deps 5. Attempted to create a migration, or get something going $ lein create-migration first Listening for transport dt_socket at address: 57528 Exception in thread main java.lang.RuntimeException: java.lang.NoSuchMethodError: clojure.lang.KeywordLookupSite.init(ILclojure/lang/Keyword;)V at clojure.lang.Util.runtimeException(Util.java:165) at clojure.lang.Compiler.eval(Compiler.java:6476) at clojure.lang.Compiler.eval(Compiler.java:6455) at clojure.lang.Compiler.load(Compiler.java:6902) at clojure.lang.RT.loadResourceScript(RT.java:357) at clojure.lang.RT.loadResourceScript(RT.java:348) at clojure.lang.RT.load(RT.java:427) at clojure.lang.RT.load(RT.java:398) at clojure.core$load$fn__4610.invoke(core.clj:5386) at clojure.core$load.doInvoke(core.clj:5385) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:5200) at clojure.core$load_lib.doInvoke(core.clj:5237) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:602) at clojure.core$load_libs.doInvoke(core.clj:5271) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:602) at clojure.core$require.doInvoke(core.clj:5352) at clojure.lang.RestFn.invoke(RestFn.java:421) at drift.generator$eval5$loading__4505__auto6.invoke(generator.clj:1) at drift.generator$eval5.invoke(generator.clj:1) at clojure.lang.Compiler.eval(Compiler.java:6465) at clojure.lang.Compiler.eval(Compiler.java:6455) at clojure.lang.Compiler.load(Compiler.java:6902) at clojure.lang.RT.loadResourceScript(RT.java:357) at clojure.lang.RT.loadResourceScript(RT.java:348) at clojure.lang.RT.load(RT.java:427) at clojure.lang.RT.load(RT.java:398) at clojure.core$load$fn__4610.invoke(core.clj:5386) at clojure.core$load.doInvoke(core.clj:5385) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:5200) at clojure.core$load_lib.doInvoke(core.clj:5237) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:602) at clojure.core$load_libs.doInvoke(core.clj:5271) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:602) at clojure.core$require.doInvoke(core.clj:5352) at clojure.lang.RestFn.invoke(RestFn.java:408) at user$eval1.invoke(NO_SOURCE_FILE:1) at clojure.lang.Compiler.eval(Compiler.java:6465) at clojure.lang.Compiler.eval(Compiler.java:6454) at clojure.lang.Compiler.eval(Compiler.java:6431) at clojure.core$eval.invoke(core.clj:2795) at clojure.main$eval_opt.invoke(main.clj:296) at clojure.main$initialize.invoke(main.clj:315) at clojure.main$null_opt.invoke(main.clj:348)
[ANN] Drift 1.4.0 released.
Drift is a Rails like migration library for Clojure. I've recently released version 1.4.0 of Drift which includes: A new Java interface. You can now run Drift migrations, find out the database version, or determine the highest migration number from java. User generated migration numbers and time stamp migration numbers. You can now create your own migration number generator or use one of the ones included with Drift. By default, Drift will now create the migration number from the current time. You can still use the old incremental migration number generator if you want. You can find the code for Drift on Github: http://github.com/macourtney/drift Drift on Clojars: http://clojars.org/drift -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en