Re: Drift 1.4.0 released.

2011-11-30 Thread Phil Hagelberg
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.

2011-11-29 Thread Edmund
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.

2011-11-29 Thread Matt
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.

2011-11-27 Thread Edmund
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.

2011-11-27 Thread Chris Perkins
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.

2011-11-27 Thread Edmund
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.

2011-11-27 Thread Matt
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.

2011-11-26 Thread Edmund
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.

2011-11-26 Thread Matt
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.

2011-11-24 Thread Matt
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