This is interesting. I don't like AR but I like AR migrations :)

So I disabled AR in my Rails project and I'm using Sequel instead. But I'm using AR migrations to evolve the database scheme. For that I use this great project:

https://github.com/thuss/standalone-migrations

Maybe this could help you with your migrations issues.

Best,
Rodrigo.

Em 15-10-2012 14:57, ChuckE escreveu:
But that's the point: I think the rake tasks shouldn't be Rails-dependent. Since ActiveRecord is dependent from the migration it must run before it is deemed loadable, I think the ORM as an independent ORM should take that into consideration, and make it configurable from the railtie, but not in the databases rake task itself. The migrations are a fundamental part of AR integration, and its rake tasks as well. I mean, when I need to install an extension to run a small subset of migrations for the Sinatra framework, it clearly shows that something could be done a little bit differently in that respect. The rake tasks should be dependent of rake, not Rails (unless there is a very good reason for it, but I don't see which in this particular example. You know the framework better, maybe you can tell me of an use case where it does make sense).

One question regarding railtie: Can one define in the app configuration more than one migration path, the same way we can do for models/helpers/etc? It would at least mitigate my problems on the Rails side, even though I still think a full AR solution would be best.

Cumprimentos

On Monday, October 15, 2012 6:22:26 PM UTC+2, Rafael Mendonça França wrote:

    Active Record in its own box. The problem is that you want to use
    something specific to Rail, the database taks.

    As you can see in the [filename of the database
    
task](https://github.com/rails/rails/blob/3-2-stable/activerecord/lib/active_record/railties/databases.rake
    
<https://github.com/rails/rails/blob/3-2-stable/activerecord/lib/active_record/railties/databases.rake>)
    it should be only loaded when you are using rails and this is why
    it is inside the railties folder.

    You can use migrations without use these tasks, but you will have
    to make your own task. This is a fair cost to those that don't
    want to use the railties infrastructure.

    Rafael Mendonça França
    http://twitter.com/rafaelfranca <http://twitter.com/rafaelfranca>
    https://github.com/rafaelfranca <https://github.com/rafaelfranca>



    On Mon, Oct 15, 2012 at 1:04 PM, ChuckE <[email protected]
    <javascript:>> wrote:

        Hi,

        I found a special ActiveRecord case which messes a bit one
        requirement. I have two applications sharing the same DB. For
        this reason we found wise to share the DB mapping logic among
        both applications, namely, our activerecord models. After
        extracting them into a gem and bundling them into the two
        applications, everything went well.

        Now, we found out it would also be wise to share the
        migrations, schema, config, etc., maybe "delegate" such rake
        tasks as create migration and schema dump to that shared repo,
        which would contain also this part of the logic. Thing is, the
        use of the Rails class throughout all the rake tasks
        concerning migrations make that impossible. Specially the
        load_config rake task, which is apparently run before each and
        every rake task. This one basically overwrites any rewrite I
        might have had done on the
        ActiveRecord::Migrator.migration_paths with the local
        'db/migrate' folder. Which in my case would be empty in both
        application trees and full on the shared repo. Because of
        that, I can't wisely set a new migration path without entering
        a world of hurt and non-stop monkey patch. Which I'll avoid by
        now. But basically, that load_config rake_task is messing up
        my plans.

        Another concern is the use of the Rails class itself. It could
        be the case that I would be talking about two rails
        applications, but one of them happens to be Sinatra, which
        doesn't own (or shouldn't own) any Rails class. I've seen how
        they extended the migrations part for their version of active
        record. Also a very limiting solution. So, I guess the
        solution will probably not come from the frameworks readapting
        their needs to activerecord, but activerecord having a
        consistent solution in its box, making it then more extendable
        for other frameworks (I don't know how Merb handles this, I
        might investigate into that).

        So, I'd like to open the debate on the subject. Or maybe it
        has been opened previously. I'd much like to hear your opinion.

        Regards,
        Tiago
-- You received this message because you are subscribed to the
        Google Groups "Ruby on Rails: Core" group.
        To view this discussion on the web visit
        https://groups.google.com/d/msg/rubyonrails-core/-/o5xL8FsQqZsJ 
<https://groups.google.com/d/msg/rubyonrails-core/-/o5xL8FsQqZsJ>.
        To post to this group, send email to
        [email protected] <javascript:>.
        To unsubscribe from this group, send email to
        [email protected] <javascript:>.
        For more options, visit this group at
        http://groups.google.com/group/rubyonrails-core?hl=en
        <http://groups.google.com/group/rubyonrails-core?hl=en>.


--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group. To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-core/-/6pbcU1t9q6UJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-core?hl=en.

--
You received this message because you are subscribed to the Google Groups "Ruby on 
Rails: Core" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core?hl=en.

Reply via email to