wondering if there is more clearer information or a code snippet for this, 
I am also struggling to use 2 databases (1 dev, 1 prod) in my alembic 
project, I have successfully ran the migrations on the dev database, now I 
want to run my migrations to the prod database, I have no idea on how to 
modify alembic.ini and env.py file,,, please help

On Tuesday, 01 February 2022 at 15:08:20 UTC+2 skira....@gmail.com wrote:

> 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/e7177036-152b-4a34-a052-bec6a176aed4n%40googlegroups.com.

Reply via email to