ProjectFlask/FlaskMigrateExtension/MigrateProjectExtension.py

Wed, 30 Dec 2020 11:02:08 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 30 Dec 2020 11:02:08 +0100
changeset 60
02243723ac17
parent 48
14d8d24e24da
child 61
fe1e8783a95f
permissions
-rw-r--r--

Updated copyright for 2021.

29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
60
02243723ac17 Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
3 # Copyright (c) 2020 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the project support for flask-migrate.
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 import os
33
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
11 import glob
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 from PyQt5.QtCore import pyqtSlot, QObject, QProcess
33
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
14 from PyQt5.QtWidgets import QMenu, QDialog, QInputDialog, QLineEdit
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 from E5Gui import E5MessageBox
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 from E5Gui.E5Application import e5App
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 from E5Gui.E5Action import E5Action
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 import Utilities
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 from ..FlaskCommandDialog import FlaskCommandDialog
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24
33
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
25 # TODO: add a submenu with action for the commands with command options
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 class MigrateProject(QObject):
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 """
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 Class implementing the flask-migrate project support.
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 """
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 def __init__(self, plugin, project, parent=None):
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 """
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 Constructor
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 @param plugin reference to the plugin object
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 @type ProjectFlaskPlugin
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 @param project reference to the project object
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 @type Project
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 @param parent parent
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 @type QObject
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 """
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 super(MigrateProject, self).__init__(parent)
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 self.__plugin = plugin
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 self.__project = project
32
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
45
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
46 self.__e5project = e5App().getObject("Project")
35
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
47
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
48 self.__migrationSummaryDialog = None
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 def initActions(self):
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 """
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 Public method to define the flask-migrate actions.
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 """
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 self.actions = []
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 self.migrateConfigAct = E5Action(
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 self.tr('Configure Migrate'),
38
f5055c1e4e07 Updated translation files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 35
diff changeset
58 self.tr('C&onfigure Migrate'),
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 0, 0,
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 self, 'flask_config_migrate')
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 self.migrateConfigAct.setStatusTip(self.tr(
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 'Shows a dialog to edit the configuration for flask-migrate'))
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 self.migrateConfigAct.setWhatsThis(self.tr(
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 """<b>Configure Migrate</b>"""
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 """<p>Shows a dialog to edit the configuration for"""
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 """ flask-migrate.</p>"""
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 ))
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 self.migrateConfigAct.triggered.connect(
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 self.__configureMigrate)
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 self.actions.append(self.migrateConfigAct)
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 self.migrateInstallAct = E5Action(
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 self.tr('Install flask-migrate'),
38
f5055c1e4e07 Updated translation files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 35
diff changeset
74 self.tr('Install &flask-migrate'),
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 0, 0,
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 self, 'flask_install_migrate')
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 self.migrateInstallAct.setStatusTip(self.tr(
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 'Installs the flask-migrate extension into the configured'
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 ' environment'))
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 self.migrateInstallAct.setWhatsThis(self.tr(
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 """<b>Install flask-migrate</b>"""
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 """<p>Installs the flask-migrate extension into the configured"""
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 """ environment using the pip interface.</p>"""
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 ))
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 self.migrateInstallAct.triggered.connect(
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 self.__installFlaskMigrate)
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 self.actions.append(self.migrateInstallAct)
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 self.migrateAvailabilityAct = E5Action(
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 self.tr('Check flask-migrate Availability'),
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 self.tr('Check flask-migrate &Availability'),
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 0, 0,
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 self, 'flask_check_migrate')
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 self.migrateAvailabilityAct.setStatusTip(self.tr(
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 'Check the availability of the flask-migrate extension'))
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 self.migrateAvailabilityAct.setWhatsThis(self.tr(
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 """<b>Check flask-migrate Availability</b>"""
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 """<p>Check the availability of the flask-migrate extension.</p>"""
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 ))
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 self.migrateAvailabilityAct.triggered.connect(
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 self.__checkAvailability)
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 self.actions.append(self.migrateAvailabilityAct)
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 #########################################################
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 ## action to initialize the database migration system
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 #########################################################
31
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
107
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
108 self.migrateInitAct = E5Action(
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
109 self.tr('Initialize Migrations'),
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
110 self.tr('&Initialize Migrations'),
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
111 0, 0,
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
112 self, 'flask_init_migrations')
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
113 self.migrateInitAct.setStatusTip(self.tr(
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
114 'Initialize support for database migrations'))
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
115 self.migrateInitAct.setWhatsThis(self.tr(
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
116 """<b>Initialize Migrations</b>"""
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
117 """<p>Initializes the support for database migrations to be"""
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
118 """ stored in the configured migrations directory.</p>"""
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
119 ))
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
120 self.migrateInitAct.triggered.connect(
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
121 self.__initMigrations)
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
122 self.actions.append(self.migrateInitAct)
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 #########################################################
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 ## action to create a new database migration
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 #########################################################
33
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
127
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
128 self.migrateCreateAct = E5Action(
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
129 self.tr('Create Migration'),
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
130 self.tr('&Create Migration'),
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
131 0, 0,
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
132 self, 'flask_create_migration')
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
133 self.migrateCreateAct.setStatusTip(self.tr(
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
134 'Create a new migration for the current database'))
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
135 self.migrateCreateAct.setWhatsThis(self.tr(
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
136 """<b>Create Migration</b>"""
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
137 """<p>Creates a new migration for the current database"""
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
138 """ and stores it in the configured migrations directory.</p>"""
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
139 ))
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
140 self.migrateCreateAct.triggered.connect(
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
141 self.__createMigration)
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
142 self.actions.append(self.migrateCreateAct)
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 #########################################################
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 ## action to up- and downgrade a databse
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 #########################################################
34
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
147
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
148 self.upgradeDatabaseAct = E5Action(
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
149 self.tr('Upgrade Database'),
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
150 self.tr('&Upgrade Database'),
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
151 0, 0,
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
152 self, 'flask_upgrade_database')
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
153 self.upgradeDatabaseAct.setStatusTip(self.tr(
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
154 'Upgrade the database to the current migration'))
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
155 self.upgradeDatabaseAct.setWhatsThis(self.tr(
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
156 """<b>Upgrade Database</b>"""
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
157 """<p>Upgrades the database to the current migration.</p>"""
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
158 ))
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
159 self.upgradeDatabaseAct.triggered.connect(
35
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
160 self.upgradeDatabase)
34
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
161 self.actions.append(self.upgradeDatabaseAct)
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
162
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
163 self.downgradeDatabaseAct = E5Action(
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
164 self.tr('Downgrade Database'),
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
165 self.tr('&Downgrade Database'),
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
166 0, 0,
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
167 self, 'flask_downgrade_database')
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
168 self.downgradeDatabaseAct.setStatusTip(self.tr(
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
169 'Downgrade the database to the previous version'))
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
170 self.downgradeDatabaseAct.setWhatsThis(self.tr(
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
171 """<b>Downgrade Database</b>"""
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
172 """<p>Downgrades the database to the previous version.</p>"""
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
173 ))
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
174 self.downgradeDatabaseAct.triggered.connect(
35
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
175 self.downgradeDatabase)
34
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
176 self.actions.append(self.downgradeDatabaseAct)
35
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
177
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
178 #########################################################
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
179 ## actions to show migrations history information
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
180 #########################################################
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
181
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
182 self.migrationSummaryAct = E5Action(
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
183 self.tr('Show Migrations Summary'),
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
184 self.tr('Show Migrations &Summary'),
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
185 0, 0,
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
186 self, 'flask_show_migrations_summary')
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
187 self.migrationSummaryAct.setStatusTip(self.tr(
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
188 'Show a summary of the created database migrations'))
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
189 self.migrationSummaryAct.setWhatsThis(self.tr(
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
190 """<b>Show Migrations Summary</b>"""
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
191 """<p>Shows a summary list of the created database"""
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
192 """ migrations.</p>"""
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
193 ))
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
194 self.migrationSummaryAct.triggered.connect(
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
195 self.__showMigrationsSummary)
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
196 self.actions.append(self.migrationSummaryAct)
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
197
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
198 self.migrationHistoryAct = E5Action(
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
199 self.tr('Show Migrations History'),
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
200 self.tr('Show Migrations &History'),
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
201 0, 0,
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
202 self, 'flask_show_migrations_history')
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
203 self.migrationHistoryAct.setStatusTip(self.tr(
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
204 'Show the full history of the created database migrations'))
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
205 self.migrationHistoryAct.setWhatsThis(self.tr(
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
206 """<b>Show Migrations History</b>"""
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
207 """<p>Shows the full history of the created database"""
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
208 """ migrations.</p>"""
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
209 ))
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
210 self.migrationHistoryAct.triggered.connect(
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
211 self.__showMigrationsHistory)
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
212 self.actions.append(self.migrationHistoryAct)
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214 def initMenu(self):
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
215 """
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
216 Public method to initialize the flask-migrate menu.
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 @return the menu generated
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
219 @rtype QMenu
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
220 """
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
221 menu = QMenu(self.tr("Database"))
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
222 menu.setTearOffEnabled(True)
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
223
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
224 menu.addAction(self.migrateConfigAct)
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
225 menu.addSeparator()
31
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
226 menu.addAction(self.migrateInitAct)
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
227 menu.addSeparator()
33
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
228 menu.addAction(self.migrateCreateAct)
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
229 menu.addSeparator()
34
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
230 menu.addAction(self.upgradeDatabaseAct)
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
231 menu.addAction(self.downgradeDatabaseAct)
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
232 menu.addSeparator()
35
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
233 menu.addAction(self.migrationSummaryAct)
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
234 menu.addAction(self.migrationHistoryAct)
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
235 menu.addSeparator()
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
236 menu.addAction(self.migrateAvailabilityAct)
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
237 menu.addAction(self.migrateInstallAct)
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
238
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
239 return menu
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
240
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
241 def determineCapability(self):
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
242 """
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
243 Public method to determine the availability of flask-migrate.
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
244 """
48
14d8d24e24da PyBabelProjectExtension, MigrateProjectExtension: moved determination of the virtual environment to the man project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 47
diff changeset
245 if self.__project.getData("flask", "flask_migrate_override"):
14d8d24e24da PyBabelProjectExtension, MigrateProjectExtension: moved determination of the virtual environment to the man project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 47
diff changeset
246 available = self.__project.getData("flask",
14d8d24e24da PyBabelProjectExtension, MigrateProjectExtension: moved determination of the virtual environment to the man project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 47
diff changeset
247 "flask_migrate_available")
14d8d24e24da PyBabelProjectExtension, MigrateProjectExtension: moved determination of the virtual environment to the man project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 47
diff changeset
248 else:
14d8d24e24da PyBabelProjectExtension, MigrateProjectExtension: moved determination of the virtual environment to the man project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 47
diff changeset
249 available = self.__flaskMigrateAvailable()
46
e700f73e1c6f Fine tuned some internal data structures.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
250 self.__project.setCapability("flask-migrate", available)
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
251
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
252 self.migrateInstallAct.setEnabled(not available)
31
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
253
48
14d8d24e24da PyBabelProjectExtension, MigrateProjectExtension: moved determination of the virtual environment to the man project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 47
diff changeset
254 for act in (self.migrateConfigAct, self.migrateInitAct,
14d8d24e24da PyBabelProjectExtension, MigrateProjectExtension: moved determination of the virtual environment to the man project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 47
diff changeset
255 self.migrateCreateAct,
14d8d24e24da PyBabelProjectExtension, MigrateProjectExtension: moved determination of the virtual environment to the man project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 47
diff changeset
256 self.upgradeDatabaseAct, self.downgradeDatabaseAct,
14d8d24e24da PyBabelProjectExtension, MigrateProjectExtension: moved determination of the virtual environment to the man project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 47
diff changeset
257 self.migrationSummaryAct, self.migrationHistoryAct,
14d8d24e24da PyBabelProjectExtension, MigrateProjectExtension: moved determination of the virtual environment to the man project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 47
diff changeset
258 ):
14d8d24e24da PyBabelProjectExtension, MigrateProjectExtension: moved determination of the virtual environment to the man project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 47
diff changeset
259 act.setEnabled(available)
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
260
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
261 def __flaskMigrateAvailable(self):
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
262 """
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
263 Private method to check, if the 'flask-babel' package is available.
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
264
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
265 @return flag indicating the availability of 'flask-babel'
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
266 @rtype bool
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
267 """
30
76c86fe13f36 Moved all code dealing with virtual environments to the main Project class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 29
diff changeset
268 interpreter = self.__project.getVirtualenvInterpreter()
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
269 if interpreter and Utilities.isinpath(interpreter):
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
270 detector = os.path.join(
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
271 os.path.dirname(__file__), "FlaskMigrateDetector.py")
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
272 proc = QProcess()
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
273 proc.setProcessChannelMode(QProcess.MergedChannels)
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
274 proc.start(interpreter, [detector])
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
275 finished = proc.waitForFinished(30000)
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
276 if finished and proc.exitCode() == 0:
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
277 return True
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
278
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
279 return False
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
280
32
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
281 def __migrationsDirectory(self, abspath=False):
31
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
282 """
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
283 Private method to calculate the path of the configured migrations
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
284 directory.
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
285
32
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
286 @param abspath flag indicating to return an absolute path
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
287 @type bool
31
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
288 @return path of the migrations directory
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
289 @rtype str
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
290 """
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
291 migrations = ""
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
292
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
293 self.__ensureMigrateConfigured()
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
294
46
e700f73e1c6f Fine tuned some internal data structures.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
295 migrations = self.__project.getData("flask-migrate",
31
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
296 "migrationsDirectory")
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
297 if migrations:
32
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
298 if abspath:
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
299 migrations = self.__e5project.getAbsoluteUniversalPath(
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
300 migrations)
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
301 else:
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
302 workdir = self.__project.getApplication()[0]
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
303 migrations = os.path.relpath(
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
304 self.__e5project.getAbsoluteUniversalPath(migrations),
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
305 workdir
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
306 )
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
307 else:
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
308 if abspath:
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
309 migrations = self.__e5project.getAbsoluteUniversalPath(
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
310 "migrations")
31
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
311
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
312 return migrations
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
313
35
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
314 def projectClosed(self):
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
315 """
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
316 Public method to handle the closing of a project.
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
317 """
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
318 for dlg in (self.__migrationSummaryDialog,):
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
319 if dlg is not None:
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
320 dlg.close()
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
321
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
322 ########################################################
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
323 ## Menu related slots below
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
324 ########################################################
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
325
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
326 @pyqtSlot()
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
327 def __configureMigrate(self):
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
328 """
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
329 Private slot to show a dialog to edit the migrate configuration.
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
330 """
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
331 from .MigrateConfigDialog import MigrateConfigDialog
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
332
46
e700f73e1c6f Fine tuned some internal data structures.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
333 config = self.__project.getData("flask-migrate", "")
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
334 dlg = MigrateConfigDialog(config)
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
335 if dlg.exec() == QDialog.Accepted:
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
336 config = dlg.getConfiguration()
46
e700f73e1c6f Fine tuned some internal data structures.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
337 self.__project.setData("flask-migrate", "", config)
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
338
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
339 def __ensureMigrateConfigured(self):
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
340 """
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
341 Private method to ensure, that flask-migrate has been configured.
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
342 """
46
e700f73e1c6f Fine tuned some internal data structures.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
343 config = self.__project.getData("flask-migrate", "")
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
344 if not config:
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
345 self.__configureMigrate()
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
346
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
347 @pyqtSlot()
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
348 def __installFlaskMigrate(self):
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
349 """
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
350 Private slot to install the flask-migrate extension into the configured
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
351 environment.
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
352 """
48
14d8d24e24da PyBabelProjectExtension, MigrateProjectExtension: moved determination of the virtual environment to the man project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 47
diff changeset
353 venvName = self.__project.getVirtualEnvironment()
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
354 if venvName:
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
355 interpreter = self.__project.getFullCommand("python")
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
356 pip = e5App().getObject("Pip")
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
357 pip.installPackages(["flask-migrate"], interpreter=interpreter)
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
358 self.determineCapability()
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
359 else:
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
360 E5MessageBox.critical(
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
361 None,
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
362 self.tr("Install flask-migrate"),
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
363 self.tr("The 'flask-migrate' extension could not be installed"
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
364 " because no virtual environment has been"
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
365 " configured."))
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
366
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
367 @pyqtSlot()
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
368 def __checkAvailability(self):
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
369 """
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
370 Private slot to check the availability of the 'flask-babel' extension.
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
371 """
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
372 self.determineCapability()
46
e700f73e1c6f Fine tuned some internal data structures.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
373 if self.__project.hasCapability("flask-migrate"):
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
374 msg = self.tr("The 'flask-migrate' extension is installed.")
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
375 else:
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
376 msg = self.tr("The 'flask-migrate' extension is not installed.")
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
377 E5MessageBox.information(
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
378 None,
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
379 self.tr("flask-migrate Availability"),
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
380 msg)
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
381
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
382 #########################################################
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
383 ## slot to initialize the database migration system
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
384 #########################################################
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
385
31
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
386 @pyqtSlot()
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
387 def __initMigrations(self):
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
388 """
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
389 Private slot to initialize the database migration system.
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
390 """
32
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
391 title = self.tr("Initialize Migrations")
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
392
31
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
393 self.__ensureMigrateConfigured()
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
394 migrations = self.__migrationsDirectory()
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
395
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
396 args = ["init"]
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
397 if migrations:
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
398 args += ["--directory", migrations]
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
399
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
400 multidb = E5MessageBox.yesNo(
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
401 None,
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
402 self.tr("Multiple Databases"),
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
403 self.tr("""Shall the support for multiple databases be"""
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
404 """ activated?"""))
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
405 if multidb:
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
406 args.append("--multidb")
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
407
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
408 dlg = FlaskCommandDialog(
32
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
409 self.__project, title=title,
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
410 msgSuccess=self.tr("\nMigrations initialized successfully.")
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
411 )
31
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
412 if dlg.startCommand("db", args):
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
413 dlg.exec()
32
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
414 if dlg.normalExit():
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
415 for root, _dirs, files in os.walk(
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
416 self.__migrationsDirectory(abspath=True)
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
417 ):
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
418 for fileName in files:
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
419 fullName = os.path.join(root, fileName)
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
420 self.__e5project.appendFile(fullName)
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
421
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
422 browser = (e5App().getObject("ProjectBrowser")
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
423 .getProjectBrowser("others"))
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
424 alembic = os.path.join(
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
425 self.__migrationsDirectory(abspath=True),
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
426 "alembic.ini"
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
427 )
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
428 browser.sourceFile.emit(alembic)
31
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
429
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
430 #########################################################
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
431 ## slot to create a new database migration
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
432 #########################################################
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
433
33
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
434 @pyqtSlot()
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
435 def __createMigration(self):
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
436 """
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
437 Private slot to create a new database migration.
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
438 """
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
439 title = self.tr("Create Migration")
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
440
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
441 self.__ensureMigrateConfigured()
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
442 migrations = self.__migrationsDirectory()
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
443
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
444 message, ok = QInputDialog.getText(
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
445 None,
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
446 title,
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
447 self.tr("Enter a short message for the migration:"),
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
448 QLineEdit.Normal)
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
449 if ok:
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
450 args = ["migrate"]
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
451 if migrations:
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
452 args += ["--directory", migrations]
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
453 if message:
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
454 args += ["--message", message]
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
455
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
456 dlg = FlaskCommandDialog(
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
457 self.__project, title=title,
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
458 msgSuccess=self.tr("\nMigration created successfully.")
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
459 )
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
460 if dlg.startCommand("db", args):
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
461 dlg.exec()
34
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
462 if dlg.normalExit():
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
463 versionsPattern = os.path.join(
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
464 self.__migrationsDirectory(abspath=True),
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
465 "versions", "*.py")
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
466 for fileName in glob.iglob(versionsPattern):
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
467 self.__e5project.appendFile(fileName)
33
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
468
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
469 #########################################################
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
470 ## slots to up- and downgrade a databse
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
471 #########################################################
34
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
472
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
473 @pyqtSlot()
35
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
474 def upgradeDatabase(self, revision=None):
34
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
475 """
35
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
476 Public slot to upgrade the database to the current migration.
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
477
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
478 @param revision migration revision to upgrade to
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
479 @type str
34
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
480 """
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
481 title = self.tr("Upgrade Database")
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
482
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
483 self.__ensureMigrateConfigured()
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
484 migrations = self.__migrationsDirectory()
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
485
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
486 args = ["upgrade"]
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
487 if migrations:
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
488 args += ["--directory", migrations]
35
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
489 if revision:
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
490 args.append(revision)
34
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
491
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
492 dlg = FlaskCommandDialog(
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
493 self.__project, title=title,
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
494 msgSuccess=self.tr("\nDatabase upgraded successfully.")
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
495 )
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
496 if dlg.startCommand("db", args):
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
497 dlg.exec()
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
498
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
499 @pyqtSlot()
35
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
500 def downgradeDatabase(self, revision=None):
34
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
501 """
35
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
502 Public slot to downgrade the database to the previous version.
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
503
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
504 @param revision migration revision to downgrade to
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
505 @type str
34
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
506 """
35
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
507 title = self.tr("Downgrade Database")
34
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
508
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
509 self.__ensureMigrateConfigured()
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
510 migrations = self.__migrationsDirectory()
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
511
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
512 args = ["downgrade"]
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
513 if migrations:
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
514 args += ["--directory", migrations]
35
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
515 if revision:
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
516 args.append(revision)
34
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
517
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
518 dlg = FlaskCommandDialog(
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
519 self.__project, title=title,
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
520 msgSuccess=self.tr("\nDatabase downgraded successfully.")
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
521 )
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
522 if dlg.startCommand("db", args):
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
523 dlg.exec()
35
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
524
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
525 #########################################################
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
526 ## slots to show migrations history information
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
527 #########################################################
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
528
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
529 @pyqtSlot()
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
530 def __showMigrationsSummary(self):
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
531 """
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
532 Private slot to show a migrations history summary.
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
533 """
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
534 from .MigrateSummaryDialog import MigrateSummaryDialog
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
535
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
536 self.__ensureMigrateConfigured()
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
537 migrations = self.__migrationsDirectory()
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
538
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
539 if self.__migrationSummaryDialog is None:
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
540 self.__migrationSummaryDialog = MigrateSummaryDialog(
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
541 self.__project, self, migrations=migrations)
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
542
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
543 self.__migrationSummaryDialog.showSummary()
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
544
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
545 @pyqtSlot()
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
546 def __showMigrationsHistory(self):
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
547 """
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
548 Private slot to show the full migrations history.
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
549 """
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
550 title = self.tr("Migrations History")
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
551
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
552 self.__ensureMigrateConfigured()
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
553 migrations = self.__migrationsDirectory()
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
554
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
555 args = ["history", "--indicate-current", "--verbose"]
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
556 if migrations:
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
557 args += ["--directory", migrations]
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
558
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
559 dlg = FlaskCommandDialog(self.__project, title=title)
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
560 if dlg.startCommand("db", args):
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
561 dlg.exec()

eric ide

mercurial