ó ŒM!Vc @sddlZddlmZddlmZddlmZddlmZd„Z dd „Z de e d e ddddd „ Z dddd „Ze dd „Ze dd„Zd„Zde d„Ze e d„Ze d„Ze e d„Ze dd„Zd„ZdS(iÿÿÿÿNi(tScriptDirectory(tEnvironmentContext(tutil(t autogeneratecCs—|jdƒxitj|jƒƒD]R}ttjj|jƒ|dƒƒ}t|ƒ}WdQX|jd||ƒq#W|jdƒ|jdƒdS(sList available templatessAvailable templates: tREADMENs%s - %ss1 Templates are used via the 'init' command, e.g.:s, alembic init --template generic ./scripts(t print_stdouttostlistdirtget_template_directorytopentpathtjointnext(tconfigttempnametreadmetsynopsis((s@/opt/alt/python27/lib/python2.7/site-packages/alembic/command.pytlist_templates s    tgenericc Cs¿tj|tjƒr+tjd|ƒ‚ntjj|jƒ|ƒ}tj|tjƒsqtjd|ƒ‚ntjdtjj |ƒtj |ƒtjj|dƒ}tjdtjj |ƒtj |ƒt |ƒ}xÉtj |ƒD]¸}tjj||ƒ}|dkrltjj |j ƒ}tj|tjƒrStjd|ƒq¦|j||d|ƒqîtjj|ƒrîtjj||ƒ} |j|| ƒqîqîWtjd|ƒd S( s#Initialize a new scripts directory.sDirectory %s already existssNo such template %rsCreating directory %stversionssalembic.ini.makos File %s already exists, skippingtscript_locationsNPlease edit configuration/connection/logging settings in %r before proceeding.N(RtaccesstF_OKRt CommandErrorR R RtstatustabspathtmakedirsRRtconfig_file_nametmsgt_generate_templatetisfilet _copy_file( R t directoryttemplatet template_dirRtscripttfile_t file_patht config_filet output_file((s@/opt/alt/python27/lib/python2.7/site-packages/alembic/command.pytinits:       theadc sftj|ƒ} td|d|d|d|d|d|d|d|d | ƒ } tj|| | ƒ‰tj|jd ƒƒ} |r±t} |rŸtj d ƒ‚n‡fd †} n0| rɇfd †} n|rátj dƒ‚n| r%t || d| d|dˆj dˆƒ| j ƒWdQXngˆj ƒD] }|^q2}t|ƒdkr^|dS|SdS(sCreate a new revision file.tmessageRtsqlR)tsplicet branch_labelt version_pathtrev_idt depends_ontrevision_environments7Using --sql with --autogenerate does not make any sensecsˆj||ƒgS(N(trun_autogenerate(trevtcontext(trevision_context(s@/opt/alt/python27/lib/python2.7/site-packages/alembic/command.pytretrieve_migrations`scsˆj||ƒgS(N(trun_no_autogenerate(R3R4(R5(s@/opt/alt/python27/lib/python2.7/site-packages/alembic/command.pyR6dssiUsing --sql with the revision command when revision_environment is not configured does not make any sensetfntas_sqlt template_argsR5Nii(Rt from_configtdicttautogentRevisionContextRtasbooltget_main_optiontTrueRRR:trun_envtgenerate_scriptstlen(R R*RR+R)R,R-R.R/R0tscript_directoryt command_argst environmentR6R#tscripts((R5s@/opt/alt/python27/lib/python2.7/site-packages/alembic/command.pytrevisionDsF    c CsMtj|ƒ}i|d6}|j|p1tjƒ|dtd|d||S(sŠMerge two revisions together. Creates a new migration file. .. versionadded:: 0.7.0 .. seealso:: :ref:`branches` R trefreshR)t branch_labels(RR;tgenerate_revisionRR/RA(R t revisionsR*R-R/R#R:((s@/opt/alt/python27/lib/python2.7/site-packages/alembic/command.pytmerges   c s¨tj|ƒ‰d }dˆkrT|s9tjdƒ‚nˆjddƒ\}‰n‡‡fd†}t|ˆd|d|d|dˆd |ƒˆjƒWd QXd S( sUpgrade to a later version.t:sRange revision not allowedicsˆjˆ|ƒS(N(t _upgrade_revs(R3R4(RIR#(s@/opt/alt/python27/lib/python2.7/site-packages/alembic/command.pytupgrade¢sR8R9t starting_revtdestination_revttagN(RR;tNoneRRtsplitRRB(R RIR+RTRRRQ((RIR#s@/opt/alt/python27/lib/python2.7/site-packages/alembic/command.pyRQ—s   c sÀtj|ƒ‰d }dˆkrT|s9tjdƒ‚nˆjddƒ\}‰n|rltjdƒ‚n‡‡fd†}t|ˆd|d|d|d ˆd |ƒˆjƒWd QXd S( sRevert to a previous version.ROsRange revision not allowedis/downgrade with --sql requires :csˆjˆ|ƒS(N(t_downgrade_revs(R3R4(RIR#(s@/opt/alt/python27/lib/python2.7/site-packages/alembic/command.pyt downgrade¾sR8R9RRRSRTN(RR;RURRRVRRB(R RIR+RTRRRX((RIR#s@/opt/alt/python27/lib/python2.7/site-packages/alembic/command.pyRX±s&   cs„tjˆƒ‰|dkrV‡‡fd†}tˆˆd|ƒˆjƒWdQXn*x'ˆj|ƒD]}ˆj|jƒqfWdS(s1Show the revision(s) denoted by the given symbol.tcurrentcs.x'ˆj|ƒD]}ˆj|jƒqWgS(N(t get_revisionsRt log_entry(R3R4tsc(R R#(s@/opt/alt/python27/lib/python2.7/site-packages/alembic/command.pyt show_currentÓsR8N(RR;RRBRZRR[(R R3R]R\((R R#s@/opt/alt/python27/lib/python2.7/site-packages/alembic/command.pytshowÍs  csàtj|ƒ}|dk rWd|kr9tjdƒ‚n|jƒjdƒ\}}n d}}‡fd†‰dd‡fd†}|dkr§|||d|ƒn5|dkrÉ|||d|ƒnˆ||||ƒdS( s.List changeset scripts in chronological order.ROs9History range requires [start]:[end], [start]:, or :[end]c s^xW|jd|pdd|p!dƒD]1}|j|jdˆdtdtdtƒƒq%WdS(NtbaseR)theadstverbosetinclude_branchest include_doctinclude_parents(twalk_revisionsRt cmd_formatRA(R R#R_R)R\(Ra(s@/opt/alt/python27/lib/python2.7/site-packages/alembic/command.pyt_display_historyïs    csE‡‡‡‡‡fd†}tˆˆd|ƒˆjƒWdQXdS(NcsHˆdkr"ˆˆˆˆ|ƒn"ˆdkrDˆˆˆ|ˆƒngS(N(RU(R3R4(RgR_R R)R#(s@/opt/alt/python27/lib/python2.7/site-packages/alembic/command.pyt_display_current_historyùs   R8(RRB(R R#R_R)Rh(Rg(R_R R)R#s@/opt/alt/python27/lib/python2.7/site-packages/alembic/command.pyt_display_history_w_currentøs  RYR)R_N(RR;RURRtstripRV(R t rev_rangeRaR#R_R)Ri((RgRas@/opt/alt/python27/lib/python2.7/site-packages/alembic/command.pythistoryâs       cCsstj|ƒ}|r'|jdƒ}n|j|jƒƒ}x0|D](}|j|j|dtdtƒƒqCWdS(s4Show current available heads in the script directoryR`Rbttree_indicatorsN(RR;RZt get_headsRRfRAtFalse(R Ratresolve_dependenciesR#R`R3((s@/opt/alt/python27/lib/python2.7/site-packages/alembic/command.pyR`s cs‡tj|ƒ‰xqˆjƒD]c‰ˆjr|jdˆjˆdtƒdj‡‡fd†‡fd†ˆjDƒDƒƒƒqqWdS(sShow current branch pointss%s %s Rbs c 3sG|]=}ddttˆjƒƒ|jtdtdˆƒfVqdS(s%s -> %st RbRcN(RDtstrRIRfRoRA(t.0trev_obj(R\Ra(s@/opt/alt/python27/lib/python2.7/site-packages/alembic/command.pys 'sc3s|]}ˆj|ƒVqdS(N(t get_revision(RsR3(R#(s@/opt/alt/python27/lib/python2.7/site-packages/alembic/command.pys ,sN( RR;Retis_branch_pointRRfRAR tnextrev(R Ra((R\R#Ras@/opt/alt/python27/lib/python2.7/site-packages/alembic/command.pytbranchess csdtjˆƒ‰|r%tjdƒn‡‡‡fd†}tˆˆd|ƒˆjƒWdQXdS(s,Display the current revision for a database.s--head-only is deprecatedcs_ˆr+ˆjdtj|jjjƒƒnx-ˆj|ƒD]}ˆj|jˆƒƒq;WgS(NsCurrent revision(s) for %s:(RRtobfuscate_url_pwt connectiontengineturlRZRf(R3R4(R R#Ra(s@/opt/alt/python27/lib/python2.7/site-packages/alembic/command.pytdisplay_version9sR8N(RR;RtwarnRRB(R Rat head_onlyR}((R R#Ras@/opt/alt/python27/lib/python2.7/site-packages/alembic/command.pyRY1s  c s¨tj|ƒ‰d }dˆkrT|s9tjdƒ‚nˆjddƒ\}‰n‡‡fd†}t|ˆd|d|dˆd|d |ƒˆjƒWd QXd S( sQ'stamp' the revision table with the given revision; don't run any migrations.ROsRange revision not allowedicsˆjˆ|ƒS(N(t _stamp_revs(R3R4(RIR#(s@/opt/alt/python27/lib/python2.7/site-packages/alembic/command.pytdo_stampWsR8R9RSRRRTN(RR;RURRRVRRB(R RIR+RTRRR((RIR#s@/opt/alt/python27/lib/python2.7/site-packages/alembic/command.pytstampKs   cs£tj|ƒ‰|dkrS‡fd†}t|ˆd|ƒˆjƒWdQXnLˆj|ƒ}|s~tjd|ƒ‚nx|D]}tj|jƒq…WdS(s%Edit revision script(s) using $EDITORRYcsF|stjdƒ‚nx'ˆj|ƒD]}tj|jƒq(WgS(NsNo current revisions(RRRZteditR (R3R4R\(R#(s@/opt/alt/python27/lib/python2.7/site-packages/alembic/command.pyt edit_currentls R8Ns*No revision files indicated by symbol '%s'( RR;RRBRZRRRƒR (R R3R„trevsR\((R#s@/opt/alt/python27/lib/python2.7/site-packages/alembic/command.pyRƒfs   (RR#Rtruntime.environmentRtRRR=RR(RURoRIRNRQRXR^RlR`RxRYR‚Rƒ(((s@/opt/alt/python27/lib/python2.7/site-packages/alembic/command.pyts&   ,  : -