If you have git example, share, please.
On Monday, 30 April 2012 at 04:10:14 UTC+3 limodou wrote:

> On Sun, Apr 29, 2012 at 11:13 PM, Michael Bayer
> <mik...@zzzcomputing.com> wrote:
> >
> > On Apr 29, 2012, at 10:56 AM, limodou wrote:
> >
> >> On Sun, Apr 29, 2012 at 10:42 PM, Michael Bayer
> >> <mik...@zzzcomputing.com> wrote:
> >>> You would assemble a multi-database scheme of your choosing in env.py. 
>   If you do "alembic init multidb" you'll see an example of one.     How 
> env.py is organized depends greatly on the relationship of the databases to 
> each other, that is, to what degree they are mirrors of each other versus 
> storing different schemas.
> >>>
> >>
> >> If I ran the command:
> >>
> >>    alembic init multidb
> >>
> >> It'll create multidb folder and copy files in it. But I saw the
> >> alembic.ini will be the same one. So if I should change it myself? And
> >> how to let alembic know different database when executing commands
> >> like: revision, upgrade, etc. It seems that no database parameter
> >> existed.
> >>
> >> And if I can manage different databases in one directory or in one ini 
> file?
> >
> > multidb has a different alembic.ini as an example.  If you already had 
> an alembic.ini there it wouldn't overwrite it.
> >
> > if you really wanted two completely independent sets of migration 
> scripts, then you'd run two migration environments.
> >
> > They can share the same alembic.ini like this:
> >
> > [my_db_one]
> > sqlalchemy.url =
> >
> > [my_db_two]
> > sqlalchemy.url =
> >
> > you then run alembic with "alembic -n my_db_one" or "alembic -n 
> my_db_two".    The "default" config area is set by -n.
> >
> > A single env.py script can get multiple database URLs in any way it 
> wants, as it determines how config is accessed.   If you look in the 
> multidb/env.py script, you'll see it's pulling multiple database urls from 
> one section using config.get_section(name) - config file:
> >
> > [alembic]
> > # path to migration scripts
> > script_location = ${script_location}
> >
> > # template used to generate migration files
> > # file_template = %%(rev)s_%%(slug)s
> >
> > databases = engine1, engine2
> >
> > [engine1]
> > sqlalchemy.url = driver://user:pass@localhost/dbname
> >
> > [engine2]
> > sqlalchemy.url = driver://user:pass@localhost/dbname2
> >
> > usage:
> >
> >    config = context.config
> >
> >    db_names = config.get_main_option('databases')
> >
> >    for name in re.split(r',\s*', db_names):
> >        engines[name] = rec = {}
> >        rec['engine'] = engine_from_config(
> >                                    config.get_section(name),
> >                                    prefix='sqlalchemy.',
> >                                    poolclass=pool.NullPool)
> >
> > Over here I have both forms of multi db at the same time.   There's two 
> migration environments, and one migration environment does two databases 
> that are largely mirrored, so three databases total.   All three make use 
> of a common env.py script that's in my application as a library, they then 
> implement an env.py in the migration environment that draws upon the 
> myapp/lib/env.py script for common features.
> >
> > You can pass instructions to a single env.py that may be controlling 
> multiple databases using --tag:
> >
> > "alembic --tag my_tag"
> >
> > "my_tag" is available in env.py as context.get_tag_argument().   You can 
> use that to conditionally run migrations on one database or the other.
> >
> > This is all DIY.  Multi-database migrations can happen in many different 
> ways so you'd need to build the approach that suits your situation best.
> >
> >
>
> thank you very much.
>
>
> -- 
> I like python!
> UliPad <<The Python Editor>>: http://code.google.com/p/ulipad/
> UliWeb <<simple web framework>>: http://code.google.com/p/uliweb/
> My Blog: http://hi.baidu.com/limodou
>

-- 
SQLAlchemy - 
The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/ad4dca39-f592-4183-a22f-fe03b48fe5d6n%40googlegroups.com.

Reply via email to