ProjectFlask/FlaskMigrateExtension/MigrateProjectExtension.py

Sun, 30 May 2021 17:33:37 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 30 May 2021 17:33:37 +0200
branch
eric7
changeset 64
0ee58185b8df
parent 61
fe1e8783a95f
child 66
0d3168d0e310
permissions
-rw-r--r--

Ported the plug-in to PyQt6 for eric7.

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
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
13 from PyQt6.QtCore import pyqtSlot, QObject, QProcess
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
14 from PyQt6.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
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
16 from EricWidgets import EricMessageBox
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
17 from EricWidgets.EricApplication import ericApp
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
18 from EricGui.EricAction import EricAction
29
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 """
61
fe1e8783a95f - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
41 super().__init__(parent)
29
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
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
46 self.__ericProject = ericApp().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
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
56 self.migrateConfigAct = EricAction(
29
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
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
72 self.migrateInstallAct = EricAction(
29
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
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
89 self.migrateAvailabilityAct = EricAction(
29
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
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
108 self.migrateInitAct = EricAction(
31
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
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
128 self.migrateCreateAct = EricAction(
33
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
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
148 self.upgradeDatabaseAct = EricAction(
34
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
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
163 self.downgradeDatabaseAct = EricAction(
34
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
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
182 self.migrationSummaryAct = EricAction(
35
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
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
198 self.migrationHistoryAct = EricAction(
35
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 """
61
fe1e8783a95f - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
245 available = (
fe1e8783a95f - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
246 self.__project.getData("flask", "flask_migrate_available")
fe1e8783a95f - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
247 if self.__project.getData("flask", "flask_migrate_override") else
fe1e8783a95f - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
248 self.__flaskMigrateAvailable()
fe1e8783a95f - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
249 )
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
61
fe1e8783a95f - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
254 for act in (
fe1e8783a95f - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
255 self.migrateConfigAct, self.migrateInitAct,
fe1e8783a95f - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
256 self.migrateCreateAct,
fe1e8783a95f - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
257 self.upgradeDatabaseAct, self.downgradeDatabaseAct,
fe1e8783a95f - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
258 self.migrationSummaryAct, self.migrationHistoryAct,
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
259 ):
14d8d24e24da PyBabelProjectExtension, MigrateProjectExtension: moved determination of the virtual environment to the man project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 47
diff changeset
260 act.setEnabled(available)
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
261
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
262 def __flaskMigrateAvailable(self):
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
263 """
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
264 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
265
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
266 @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
267 @rtype bool
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
268 """
30
76c86fe13f36 Moved all code dealing with virtual environments to the main Project class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 29
diff changeset
269 interpreter = self.__project.getVirtualenvInterpreter()
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
270 if interpreter and Utilities.isinpath(interpreter):
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
271 detector = os.path.join(
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
272 os.path.dirname(__file__), "FlaskMigrateDetector.py")
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
273 proc = QProcess()
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
274 proc.setProcessChannelMode(
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
275 QProcess.ProcessChannelMode.MergedChannels)
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
276 proc.start(interpreter, [detector])
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
277 finished = proc.waitForFinished(30000)
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
278 if finished and proc.exitCode() == 0:
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
279 return True
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
280
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
281 return False
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
282
32
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
283 def __migrationsDirectory(self, abspath=False):
31
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
284 """
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
285 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
286 directory.
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
287
32
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
288 @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
289 @type bool
31
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
290 @return path of the migrations directory
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
291 @rtype str
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 migrations = ""
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
294
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
295 self.__ensureMigrateConfigured()
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
296
46
e700f73e1c6f Fine tuned some internal data structures.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
297 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
298 "migrationsDirectory")
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
299 if migrations:
32
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
300 if abspath:
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
301 migrations = self.__ericProject.getAbsoluteUniversalPath(
32
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
302 migrations)
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
303 else:
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
304 workdir = self.__project.getApplication()[0]
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
305 migrations = os.path.relpath(
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
306 self.__ericProject.getAbsoluteUniversalPath(migrations),
32
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
307 workdir
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
308 )
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
309 else:
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
310 if abspath:
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
311 migrations = self.__ericProject.getAbsoluteUniversalPath(
32
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
312 "migrations")
31
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
313
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
314 return migrations
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
315
35
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
316 def projectClosed(self):
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 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
319 """
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
320 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
321 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
322 dlg.close()
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
323
29
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 ## Menu related slots below
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
326 ########################################################
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
327
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
328 @pyqtSlot()
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
329 def __configureMigrate(self):
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 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
332 """
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
333 from .MigrateConfigDialog import MigrateConfigDialog
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
334
46
e700f73e1c6f Fine tuned some internal data structures.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
335 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
336 dlg = MigrateConfigDialog(config)
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
337 if dlg.exec() == QDialog.DialogCode.Accepted:
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
338 config = dlg.getConfiguration()
46
e700f73e1c6f Fine tuned some internal data structures.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
339 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
340
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
341 def __ensureMigrateConfigured(self):
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
342 """
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
343 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
344 """
46
e700f73e1c6f Fine tuned some internal data structures.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
345 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
346 if not config:
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
347 self.__configureMigrate()
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
348
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
349 @pyqtSlot()
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
350 def __installFlaskMigrate(self):
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
351 """
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
352 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
353 environment.
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
354 """
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
355 venvName = self.__project.getVirtualEnvironment()
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
356 if venvName:
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
357 interpreter = self.__project.getFullCommand("python")
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
358 pip = ericApp().getObject("Pip")
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
359 pip.installPackages(["flask-migrate"], interpreter=interpreter)
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
360 self.determineCapability()
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
361 else:
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
362 EricMessageBox.critical(
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
363 None,
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
364 self.tr("Install flask-migrate"),
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
365 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
366 " because no virtual environment has been"
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
367 " configured."))
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
368
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
369 @pyqtSlot()
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
370 def __checkAvailability(self):
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 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
373 """
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
374 self.determineCapability()
61
fe1e8783a95f - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
375 msg = (
fe1e8783a95f - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
376 self.tr("The 'flask-migrate' extension is installed.")
fe1e8783a95f - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
377 if self.__project.hasCapability("flask-migrate") else
fe1e8783a95f - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
378 self.tr("The 'flask-migrate' extension is not installed.")
fe1e8783a95f - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
379 )
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
380 EricMessageBox.information(
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
381 None,
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
382 self.tr("flask-migrate Availability"),
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
383 msg)
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 #########################################################
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
386 ## 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
387 #########################################################
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
388
31
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
389 @pyqtSlot()
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
390 def __initMigrations(self):
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
391 """
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
392 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
393 """
32
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
394 title = self.tr("Initialize Migrations")
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
395
31
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
396 self.__ensureMigrateConfigured()
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
397 migrations = self.__migrationsDirectory()
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
398
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
399 args = ["init"]
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
400 if migrations:
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
401 args += ["--directory", migrations]
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
402
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
403 multidb = EricMessageBox.yesNo(
31
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
404 None,
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
405 self.tr("Multiple Databases"),
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
406 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
407 """ activated?"""))
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
408 if multidb:
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
409 args.append("--multidb")
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
410
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
411 dlg = FlaskCommandDialog(
32
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
412 self.__project, title=title,
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
413 msgSuccess=self.tr("\nMigrations initialized successfully.")
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
414 )
31
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
415 if dlg.startCommand("db", args):
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
416 dlg.exec()
32
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
417 if dlg.normalExit():
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
418 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
419 self.__migrationsDirectory(abspath=True)
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
420 ):
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
421 for fileName in files:
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
422 fullName = os.path.join(root, fileName)
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
423 self.__ericProject.appendFile(fullName)
32
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
424
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
425 browser = (ericApp().getObject("ProjectBrowser")
32
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
426 .getProjectBrowser("others"))
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
427 alembic = os.path.join(
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
428 self.__migrationsDirectory(abspath=True),
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
429 "alembic.ini"
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
430 )
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
431 browser.sourceFile.emit(alembic)
31
e614add95516 Added the action to initialize the migrations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
432
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
433 #########################################################
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
434 ## 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
435 #########################################################
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
436
33
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
437 @pyqtSlot()
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
438 def __createMigration(self):
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
439 """
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
440 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
441 """
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
442 title = self.tr("Create Migration")
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 self.__ensureMigrateConfigured()
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
445 migrations = self.__migrationsDirectory()
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
446
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
447 message, ok = QInputDialog.getText(
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
448 None,
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
449 title,
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
450 self.tr("Enter a short message for the migration:"),
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
451 QLineEdit.EchoMode.Normal)
33
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
452 if ok:
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
453 args = ["migrate"]
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
454 if migrations:
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
455 args += ["--directory", migrations]
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
456 if message:
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
457 args += ["--message", message]
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
458
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
459 dlg = FlaskCommandDialog(
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
460 self.__project, title=title,
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
461 msgSuccess=self.tr("\nMigration created successfully.")
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
462 )
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
463 if dlg.startCommand("db", args):
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
464 dlg.exec()
34
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
465 if dlg.normalExit():
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
466 versionsPattern = os.path.join(
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
467 self.__migrationsDirectory(abspath=True),
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
468 "versions", "*.py")
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
469 for fileName in glob.iglob(versionsPattern):
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
470 self.__ericProject.appendFile(fileName)
33
c82b296a21ae Added the 'flask db migrate' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
471
29
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
472 #########################################################
a8817ea36587 Started implementing support for the 'flask-migrate' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
473 ## 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
474 #########################################################
34
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
475
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
476 @pyqtSlot()
35
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
477 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
478 """
35
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
479 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
480
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
481 @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
482 @type str
34
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
483 """
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
484 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
485
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
486 self.__ensureMigrateConfigured()
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
487 migrations = self.__migrationsDirectory()
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
488
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
489 args = ["upgrade"]
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
490 if migrations:
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
491 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
492 if revision:
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
493 args.append(revision)
34
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
494
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
495 dlg = FlaskCommandDialog(
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
496 self.__project, title=title,
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
497 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
498 )
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
499 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
500 dlg.exec()
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
501
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
502 @pyqtSlot()
35
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
503 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
504 """
35
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
505 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
506
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
507 @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
508 @type str
34
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
509 """
35
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
510 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
511
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
512 self.__ensureMigrateConfigured()
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
513 migrations = self.__migrationsDirectory()
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
514
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
515 args = ["downgrade"]
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
516 if migrations:
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
517 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
518 if revision:
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
519 args.append(revision)
34
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
520
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
521 dlg = FlaskCommandDialog(
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
522 self.__project, title=title,
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
523 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
524 )
a91c6a1eb23f Added the action to upgrade or downgrade the database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
525 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
526 dlg.exec()
35
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 ## 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
530 #########################################################
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 @pyqtSlot()
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
533 def __showMigrationsSummary(self):
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
534 """
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
535 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
536 """
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
537 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
538
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
539 self.__ensureMigrateConfigured()
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
540 migrations = self.__migrationsDirectory()
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
541
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
542 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
543 self.__migrationSummaryDialog = MigrateSummaryDialog(
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
544 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
545
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
546 self.__migrationSummaryDialog.showSummary()
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 @pyqtSlot()
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
549 def __showMigrationsHistory(self):
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
550 """
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
551 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
552 """
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
553 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
554
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
555 self.__ensureMigrateConfigured()
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
556 migrations = self.__migrationsDirectory()
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
557
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
558 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
559 if migrations:
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
560 args += ["--directory", migrations]
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
561
65a377b7a52c Added actions to show a migrations summary and migrations history.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
562 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
563 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
564 dlg.exec()

eric ide

mercurial