Continued adding support for the various migration commands.

Mon, 19 Dec 2016 18:44:07 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 19 Dec 2016 18:44:07 +0100
changeset 73
8a4ccc4f1359
parent 72
0f95786f7868
child 74
f33822c3eb47

Continued adding support for the various migration commands.

PluginDjango.e4p file | annotate | diff | comparison | revisions
PluginProjectDjango.py file | annotate | diff | comparison | revisions
ProjectDjango/DjangoMigrationsListDialog.py file | annotate | diff | comparison | revisions
ProjectDjango/DjangoMigrationsListDialog.ui file | annotate | diff | comparison | revisions
ProjectDjango/Project.py file | annotate | diff | comparison | revisions
ProjectDjango/i18n/django_de.qm file | annotate | diff | comparison | revisions
ProjectDjango/i18n/django_de.ts file | annotate | diff | comparison | revisions
ProjectDjango/i18n/django_empty.ts file | annotate | diff | comparison | revisions
ProjectDjango/i18n/django_en.ts file | annotate | diff | comparison | revisions
ProjectDjango/i18n/django_es.ts file | annotate | diff | comparison | revisions
ProjectDjango/i18n/django_ru.ts file | annotate | diff | comparison | revisions
ProjectDjango/i18n/django_tr.ts file | annotate | diff | comparison | revisions
ProjectDjango/icons/applied.png file | annotate | diff | comparison | revisions
diff -r 0f95786f7868 -r 8a4ccc4f1359 PluginDjango.e4p
--- a/PluginDjango.e4p	Sat Dec 17 19:07:02 2016 +0100
+++ b/PluginDjango.e4p	Mon Dec 19 18:44:07 2016 +0100
@@ -20,6 +20,8 @@
     <Source>ProjectDjango/DjangoDialog.py</Source>
     <Source>ProjectDjango/DjangoDumpdataDataDialog.py</Source>
     <Source>ProjectDjango/DjangoLoaddataDataDialog.py</Source>
+    <Source>ProjectDjango/DjangoMakeMigrationsDialog.py</Source>
+    <Source>ProjectDjango/DjangoMigrationSelectionDialog.py</Source>
     <Source>ProjectDjango/DjangoMigrationsListDialog.py</Source>
     <Source>ProjectDjango/Project.py</Source>
     <Source>ProjectDjango/__init__.py</Source>
@@ -30,6 +32,8 @@
     <Form>ProjectDjango/DjangoDialog.ui</Form>
     <Form>ProjectDjango/DjangoDumpdataDataDialog.ui</Form>
     <Form>ProjectDjango/DjangoLoaddataDataDialog.ui</Form>
+    <Form>ProjectDjango/DjangoMakeMigrationsDialog.ui</Form>
+    <Form>ProjectDjango/DjangoMigrationSelectionDialog.ui</Form>
     <Form>ProjectDjango/DjangoMigrationsListDialog.ui</Form>
   </Forms>
   <Translations>
@@ -56,7 +60,9 @@
     <Other>ProjectDjango/Documentation/LICENSE.GPL3</Other>
     <Other>ProjectDjango/Documentation/help</Other>
     <Other>ProjectDjango/Documentation/source</Other>
+    <Other>ProjectDjango/icons/applied.png</Other>
     <Other>ProjectDjango/icons/django.png</Other>
+    <Other>ProjectDjango/icons/django64.png</Other>
   </Others>
   <MainScript>PluginProjectDjango.py</MainScript>
   <Vcs>
diff -r 0f95786f7868 -r 8a4ccc4f1359 PluginProjectDjango.py
--- a/PluginProjectDjango.py	Sat Dec 17 19:07:02 2016 +0100
+++ b/PluginProjectDjango.py	Mon Dec 19 18:44:07 2016 +0100
@@ -28,7 +28,7 @@
 author = "Detlev Offenbach <detlev@die-offenbachs.de>"
 autoactivate = True
 deactivateable = True
-version = "4.1.0"
+version = "4.2.0"
 className = "ProjectDjangoPlugin"
 packageName = "ProjectDjango"
 shortDescription = "Project support for Django projects."
diff -r 0f95786f7868 -r 8a4ccc4f1359 ProjectDjango/DjangoMigrationsListDialog.py
--- a/ProjectDjango/DjangoMigrationsListDialog.py	Sat Dec 17 19:07:02 2016 +0100
+++ b/ProjectDjango/DjangoMigrationsListDialog.py	Mon Dec 19 18:44:07 2016 +0100
@@ -13,9 +13,10 @@
 except NameError:
     pass
 
-from PyQt5.QtCore import pyqtSlot, Qt, QProcess, QTimer
+from PyQt5.QtCore import pyqtSlot, Qt, QProcess, QTimer, QPoint
 from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QAbstractButton, \
-    QHeaderView, QTreeWidgetItem
+    QHeaderView, QTreeWidgetItem, QMenu, QAbstractItemView, QInputDialog, \
+    QLineEdit
 
 from E5Gui import E5MessageBox
 
@@ -31,12 +32,14 @@
     MigrationsListMode = "L"
     MigrationsPlanMode = "P"
     
-    def __init__(self, mode, parent=None):
+    def __init__(self, mode, django, parent=None):
         """
         Constructor
         
         @param parent reference to the parent widget
         @type QWidget
+        @param django reference to the Django project object
+        @type Project
         """
         super(DjangoMigrationsListDialog, self).__init__(parent)
         self.setupUi(self)
@@ -46,7 +49,15 @@
         
         self.ioEncoding = Preferences.getSystem("IOEncoding")
         
-        self.proc = None
+        self.proc = QProcess()
+        self.proc.finished.connect(self.__procFinished)
+        self.proc.readyReadStandardOutput.connect(self.__readStdout)
+        self.proc.readyReadStandardError.connect(self.__readStderr)
+        
+        self.__pyExe = ""
+        self.__sitePath = ""
+        
+        self.__django = django
         
         self.__mode = mode
         if self.__mode == DjangoMigrationsListDialog.MigrationsListMode:
@@ -54,12 +65,22 @@
             self.migrationsList.setHeaderLabels([
                 self.tr("Name"),
             ])
+            self.migrationsList.setSelectionMode(
+                QAbstractItemView.ExtendedSelection)
         else:
             self.setWindowTitle(self.tr("Migrations Plan"))
             self.migrationsList.setHeaderLabels([
                 self.tr("Migration"),
                 self.tr("Dependencies"),
             ])
+            self.migrationsList.setSelectionMode(
+                QAbstractItemView.SingleSelection)
+        
+        self.refreshButton = self.buttonBox.addButton(
+            self.tr("&Refresh"), QDialogButtonBox.ActionRole)
+        self.refreshButton.setToolTip(
+            self.tr("Press to refresh the list"))
+        self.refreshButton.setEnabled(False)
     
     @pyqtSlot(QAbstractButton)
     def on_buttonBox_clicked(self, button):
@@ -73,6 +94,8 @@
             self.close()
         elif button == self.buttonBox.button(QDialogButtonBox.Cancel):
             self.__finish()
+        elif button == self.refreshButton:
+            self.on_refreshButton_clicked()
     
     def __finish(self):
         """
@@ -89,7 +112,7 @@
         self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False)
         self.buttonBox.button(QDialogButtonBox.Close).setDefault(True)
         
-        self.proc = None
+        self.refreshButton.setEnabled(True)
         
         self.__resizeColumns()
     
@@ -121,12 +144,11 @@
         @type str
         @return flag indicating a successful start of the process (boolean)
         """
-        self.errorGroup.hide()
+        self.__pyExe = pythonExecutable
+        self.__sitePath = sitePath
         
-        self.proc = QProcess()
-        self.proc.finished.connect(self.__procFinished)
-        self.proc.readyReadStandardOutput.connect(self.__readStdout)
-        self.proc.readyReadStandardError.connect(self.__readStderr)
+        self.errorGroup.hide()
+        self.migrationsList.clear()
         
         self.__lastTopItem = None
         
@@ -185,14 +207,17 @@
         else:
             # migration name
             line = line.strip()
-            applied = line[:3]
-            name = line[3:].strip()
-            if self.__lastTopItem:
-                itm = QTreeWidgetItem(self.__lastTopItem, [name])
-            else:
-                itm = QTreeWidgetItem(self.migrationsList, [name])
-            if applied[1] != " ":
-                itm.setCheckState(0, Qt.Checked)
+            if line.startswith("["):
+                applied = line[:3]
+                name = line[3:].strip()
+                if self.__lastTopItem:
+                    itm = QTreeWidgetItem(self.__lastTopItem, [name])
+                else:
+                    itm = QTreeWidgetItem(self.migrationsList, [name])
+                if applied[1] == " ":
+                    itm.setCheckState(0, Qt.Unchecked)
+                else:
+                    itm.setCheckState(0, Qt.Checked)
     
     def __createPlanItem(self, line):
         """
@@ -233,3 +258,120 @@
                     'replace')
             self.errors.insertPlainText(s)
             self.errors.ensureCursorVisible()
+    
+    @pyqtSlot()
+    def on_refreshButton_clicked(self):
+        """
+        Private slot to refresh the log.
+        """
+        self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False)
+        self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(True)
+        self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True)
+        
+        self.refreshButton.setEnabled(False)
+        
+        self.start(self.__pyExe, self.__sitePath)
+    
+    @pyqtSlot(QPoint)
+    def on_migrationsList_customContextMenuRequested(self, pos):
+        """
+        Private slot to show the context menu.
+        
+        @param pos position the context menu was requested at
+        @type QPoint
+        """
+        menu = QMenu(self.migrationsList)
+        menu.addAction(self.tr("Apply All Migrations"),
+                       self.__applyAllMigrations)
+        
+        if self.__mode == DjangoMigrationsListDialog.MigrationsListMode:
+            selItems = self.migrationsList.selectedItems()
+            if len(selItems) > 0:
+                selApps = []
+                for itm in selItems:
+                    if itm.parent() is None:
+                        selApps.append(itm)
+                
+                menu.addAction(
+                    self.tr("Apply Selected Migrations"),
+                    self.__applyMigration).setEnabled(len(selItems) == 1)
+                menu.addAction(
+                    self.tr("Unapply Migrations"),
+                    self.__unapplyMigration).setEnabled(len(selApps) == 1)
+                menu.addSeparator()
+                menu.addAction(
+                    self.tr("Make Migrations"),
+                    self.__makeMigrations).setEnabled(len(selApps) > 0)
+                menu.addAction(
+                    self.tr("Make Migrations (dry-run)"),
+                    lambda: self.__makeMigrations(dryRun=True))\
+                .setEnabled(len(selApps) > 0)
+        else:
+            menu.addAction(self.tr("Apply Selected Migrations"),
+                           self.__applyMigration)
+        
+        menu.popup(self.migrationsList.mapToGlobal(pos))
+    
+    def __applyAllMigrations(self):
+        """
+        Private slot to apply all migrations.
+        """
+        self.__django.applyMigrations()
+        self.on_refreshButton_clicked()
+    
+    def __applyMigration(self):
+        """
+        Private slot to apply the selected migrations.
+        """
+        itm = self.migrationsList.selectedItems()[0]
+        if self.__mode == DjangoMigrationsListDialog.MigrationsListMode:
+            if itm.parent() is None:
+                # app item
+                app = itm.text(0)
+                migration = None
+            else:
+                migration = itm.text(0)
+                app = itm.parent().text(0)
+        else:
+            app, migration = itm.text(0).split(".", 1)
+        
+        self.__django.applyMigrations(app=app, migration=migration)
+        
+        self.on_refreshButton_clicked()
+    
+    def __unapplyMigration(self):
+        """
+        Private slot to unapply the selected migrations.
+        """
+        if self.__mode == DjangoMigrationsListDialog.MigrationsListMode:
+            itm = self.migrationsList.selectedItems()[0]
+            if itm.parent() is None:
+                # only valid for app entries
+                app = itm.text(0)
+                self.__django.applyMigrations(app=app, migration="zero")
+                
+                self.on_refreshButton_clicked()
+    
+    def __makeMigrations(self, dryRun=False):
+        """
+        Private slot to make migrations for the selected apps.
+        
+        @param dryRun dlag indicating a dry-run
+        @type bool
+        """
+        apps = []
+        for itm in self.migrationsList.selectedItems():
+            if itm.parent() is None:
+                apps.append(itm.text(0))
+        
+        if apps:
+            migration, ok = QInputDialog.getText(
+                self,
+                self.tr("Make Migrations"),
+                self.tr("Enter a name for the migrations (leave empty to"
+                        " use system supplied name):"),
+                QLineEdit.Normal)
+            if ok:
+                self.__django.makeMigrations(apps, migration, dryRun)
+            
+            self.on_refreshButton_clicked()
diff -r 0f95786f7868 -r 8a4ccc4f1359 ProjectDjango/DjangoMigrationsListDialog.ui
--- a/ProjectDjango/DjangoMigrationsListDialog.ui	Sat Dec 17 19:07:02 2016 +0100
+++ b/ProjectDjango/DjangoMigrationsListDialog.ui	Mon Dec 19 18:44:07 2016 +0100
@@ -22,6 +22,9 @@
        <verstretch>3</verstretch>
       </sizepolicy>
      </property>
+     <property name="contextMenuPolicy">
+      <enum>Qt::CustomContextMenu</enum>
+     </property>
      <property name="alternatingRowColors">
       <bool>true</bool>
      </property>
diff -r 0f95786f7868 -r 8a4ccc4f1359 ProjectDjango/Project.py
--- a/ProjectDjango/Project.py	Sat Dec 17 19:07:02 2016 +0100
+++ b/ProjectDjango/Project.py	Mon Dec 19 18:44:07 2016 +0100
@@ -657,7 +657,6 @@
         """
         Private method to define the migration actions.
         """
-        # TODO: showmigrations
         self.showMigrationsAct = E5Action(
             self.tr('Show Migrations'),
             self.tr('&Show Migrations'),
@@ -688,9 +687,68 @@
         self.showMigrationsPlanAct.triggered.connect(self.__showMigrationsPlan)
         self.actions.append(self.showMigrationsPlanAct)
         
-        # TODO: makemigrations
-        # TODO: migrate
+        self.migrateAllAct = E5Action(
+            self.tr('Apply All Migrations'),
+            self.tr('&Apply All Migrations'),
+            0, 0,
+            self, 'django_migration_apply_all')
+        self.migrateAllAct.setStatusTip(self.tr(
+            'Apply all available migrations'))
+        self.migrateAllAct.setWhatsThis(self.tr(
+            """<b>Apply All Migrations</b>"""
+            """<p>This applies all migrations of the Django project.</p>"""
+        ))
+        self.migrateAllAct.triggered.connect(self.__applyAllMigrations)
+        self.actions.append(self.migrateAllAct)
+        
+        self.migrateSelectedAct = E5Action(
+            self.tr('Apply Selected Migrations'),
+            self.tr('Apply Selected Migrations'),
+            0, 0,
+            self, 'django_migration_apply_selected')
+        self.migrateSelectedAct.setStatusTip(self.tr(
+            'Apply selected migrations'))
+        self.migrateSelectedAct.setWhatsThis(self.tr(
+            """<b>Apply Selected Migrations</b>"""
+            """<p>This applies selected migrations of the Django"""
+            """ project.</p>"""
+        ))
+        self.migrateSelectedAct.triggered.connect(
+            self.__applySelectedMigrations)
+        self.actions.append(self.migrateSelectedAct)
+        
+        self.unmigrateAct = E5Action(
+            self.tr('Unapply Migrations'),
+            self.tr('&Unapply Migrations'),
+            0, 0,
+            self, 'django_migration_unapply')
+        self.unmigrateAct.setStatusTip(self.tr(
+            'Unapply all migrations for an app'))
+        self.unmigrateAct.setWhatsThis(self.tr(
+            """<b>Unapply Migrations</b>"""
+            """<p>This unapplies all migrations for an app of the Django"""
+            """ project.</p>"""
+        ))
+        self.unmigrateAct.triggered.connect(self.__unapplyMigrations)
+        self.actions.append(self.unmigrateAct)
+        
+        self.makeMigrationsAct = E5Action(
+            self.tr('Make Migrations'),
+            self.tr('&Make Migrations'),
+            0, 0,
+            self, 'django_migration_make')
+        self.makeMigrationsAct.setStatusTip(self.tr(
+            'Generate migrations for the project'))
+        self.makeMigrationsAct.setWhatsThis(self.tr(
+            """<b>Make Migrations</b>"""
+            """<p>This generates migrations for the Django project.</p>"""
+        ))
+        self.makeMigrationsAct.triggered.connect(self.__makeMigrations)
+        self.actions.append(self.makeMigrationsAct)
+        
         # TODO: squashmigrations
+        
+        # TODO: sqlmigrate
     
     def initMenu(self):
         """
@@ -797,6 +855,12 @@
         
         menu.addAction(self.showMigrationsAct)
         menu.addAction(self.showMigrationsPlanAct)
+        menu.addSeparator()
+        menu.addAction(self.migrateAllAct)
+        menu.addAction(self.migrateSelectedAct)
+        menu.addAction(self.unmigrateAct)
+        menu.addSeparator()
+        menu.addAction(self.makeMigrationsAct)
         
         self.__menus["migrations"] = menu
         
@@ -2082,7 +2146,7 @@
         
         from .DjangoMigrationsListDialog import DjangoMigrationsListDialog
         self.__migrationsListDialog = DjangoMigrationsListDialog(
-            DjangoMigrationsListDialog.MigrationsListMode, self.__ui)
+            DjangoMigrationsListDialog.MigrationsListMode, self, self.__ui)
         self.__migrationsListDialog.show()
         self.__migrationsListDialog.start(self.__getPythonExecutable(), path)
     
@@ -2097,10 +2161,182 @@
         
         from .DjangoMigrationsListDialog import DjangoMigrationsListDialog
         self.__migrationsPlanDialog = DjangoMigrationsListDialog(
-            DjangoMigrationsListDialog.MigrationsPlanMode, self.__ui)
+            DjangoMigrationsListDialog.MigrationsPlanMode, self, self.__ui)
         self.__migrationsPlanDialog.show()
         self.__migrationsPlanDialog.start(self.__getPythonExecutable(), path)
     
+    def __applyAllMigrations(self):
+        """
+        Public slot to apply all migrations.
+        """
+        self.applyMigrations()
+    
+    def __applySelectedMigrations(self):
+        """
+        Public slot to apply selected migrations of a selected app.
+        """
+        migrations = self.__getMigrations()
+        if not migrations:
+            E5MessageBox.information(
+                None,
+                self.tr("Apply Selected Migrations"),
+                self.tr("""No migrations available."""))
+            return
+        
+        from .DjangoMigrationSelectionDialog import \
+            DjangoMigrationSelectionDialog
+        dlg = DjangoMigrationSelectionDialog(migrations)
+        if dlg.exec_() == QDialog.Accepted:
+            app, migration = dlg.getData()
+            self.applyMigrations(app=app, migration=migration)
+    
+    def applyMigrations(self, app=None, migration=None):
+        """
+        Public slot to apply migrations.
+        
+        @param app name of an application to apply migrations for
+        @type str
+        @param migration name of a migration to update to
+        @type str
+        """
+        if migration == "zero":
+            title = self.tr("Unapply Migrations")
+        else:
+            title = self.tr("Apply Migrations")
+        
+        try:
+            path = self.__sitePath()
+        except DjangoNoSiteSelectedException:
+            return
+        
+        args = []
+        args.append(self.__getPythonExecutable())
+        args.append("manage.py")
+        args.append("migrate")
+        args.append("--noinput")
+        if app:
+            args.append(app)
+            if migration:
+                args.append(migration)
+        
+        dia = DjangoDialog(title)
+        res = dia.startProcess(args, path)
+        if res:
+            dia.exec_()
+    
+    def __unapplyMigrations(self):
+        """
+        Private slot to un-apply all migrations of an application.
+        """
+        apps = list(sorted(self.__getMigrations().keys()))
+        if not apps:
+            E5MessageBox.information(
+                None,
+                self.tr("Unapply Migrations"),
+                self.tr("""No migrations available."""))
+            return
+        
+        app, ok = QInputDialog.getItem(
+            None,
+            self.tr("Unapply Migrations"),
+            self.tr("Select an application:"),
+            [""] + apps,
+            0, False)
+        if ok and app:
+            self.applyMigrations(app=app, migration="zero")
+    
+    def __getMigrations(self):
+        """
+        Private method to get the available migrations.
+        
+        @return dictionary containing the available migrations
+        @rtype dict with app name as key (str) and list of tuples of
+            applied indication (bool) and migration name (str) as value
+        """
+        try:
+            path = self.__sitePath()
+        except DjangoNoSiteSelectedException:
+            return {}
+        
+        args = []
+        args.append("manage.py")
+        args.append("showmigrations")
+        args.append("--list")
+        
+        migrations = {}
+        proc = QProcess()
+        if path:
+            proc.setWorkingDirectory(path)
+        proc.start(self.__getPythonExecutable(), args)
+        if proc.waitForStarted():
+            if proc.waitForFinished():
+                output = str(proc.readAllStandardOutput(),
+                             Preferences.getSystem("IOEncoding"), 'replace')
+                if output:
+                    recentApp = ""
+                    for line in output.splitlines():
+                        if not line.startswith(" "):
+                            # application name
+                            recentApp = line.strip()
+                            migrations[recentApp] = []
+                        else:
+                            # migration name
+                            line = line.strip()
+                            applied = line[1] != " "
+                            name = line[3:].strip()
+                            if recentApp:
+                                migrations[recentApp].append((applied, name))
+        return migrations
+    
+    def __makeMigrations(self):
+        """
+        Private slot to generate migrations for the Django project.
+        """
+        from .DjangoMakeMigrationsDialog import DjangoMakeMigrationsDialog
+        dlg = DjangoMakeMigrationsDialog(self.getRecentApplications())
+        if dlg.exec_() == QDialog.Accepted:
+            apps, migration, dryRun = dlg.getData()
+            if apps:
+                self.setMostRecentApplication(apps)
+            apps = apps.split()
+            self.makeMigrations(apps, migration, dryRun)
+    
+    def makeMigrations(self, apps, migration=None, dryRun=False):
+        """
+        Public method to generate migrations.
+        
+        @param apps list of application names to generate migrations for
+        @type list of str
+        @param migration name of the migration to generate
+        @type str
+        @param dryRun flag indicating a dry run
+        @type bool
+        """
+        title = self.tr("Make Migrations")
+        
+        try:
+            path = self.__sitePath()
+        except DjangoNoSiteSelectedException:
+            return
+        
+        args = []
+        args.append(self.__getPythonExecutable())
+        args.append("manage.py")
+        args.append("makemigrations")
+        args.append("--noinput")
+        if migration:
+            args.append("--name")
+            args.append(migration.replace(" ", "_"))
+        if dryRun:
+            args.append("--dry-run")
+        if apps:
+            args += apps
+        
+        dia = DjangoDialog(title)
+        res = dia.startProcess(args, path)
+        if res:
+            dia.exec_()
+    
     ##################################################################
     ## slots below implement some tool functions
     ##################################################################
diff -r 0f95786f7868 -r 8a4ccc4f1359 ProjectDjango/i18n/django_de.qm
Binary file ProjectDjango/i18n/django_de.qm has changed
diff -r 0f95786f7868 -r 8a4ccc4f1359 ProjectDjango/i18n/django_de.ts
--- a/ProjectDjango/i18n/django_de.ts	Sat Dec 17 19:07:02 2016 +0100
+++ b/ProjectDjango/i18n/django_de.ts	Mon Dec 19 18:44:07 2016 +0100
@@ -150,47 +150,153 @@
     </message>
 </context>
 <context>
+    <name>DjangoMakeMigrationsDialog</name>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="14"/>
+        <source>Make Migrations</source>
+        <translation>Migrationen generieren</translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="23"/>
+        <source>Applications:</source>
+        <translation>Anwendungen:</translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="36"/>
+        <source>Enter the list of applications separated by spaces.</source>
+        <translation>Gib die Liste der Anwendungen durch Leerzeichen getrennt ein.</translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="46"/>
+        <source>Name:</source>
+        <translation>Name:</translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="53"/>
+        <source>Enter a name for the migration</source>
+        <translation>Gibe einen Namen für die Migration ein</translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="66"/>
+        <source>Select to perform a dry-run</source>
+        <translation>Auswählen, um einen Trockenlauf zu starten</translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="69"/>
+        <source>Dry-Run only</source>
+        <translation>nur Trockenlauf</translation>
+    </message>
+</context>
+<context>
+    <name>DjangoMigrationSelectionDialog</name>
+    <message>
+        <location filename="../DjangoMigrationSelectionDialog.ui" line="14"/>
+        <source>Select Migration</source>
+        <translation>Migration auswählen</translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationSelectionDialog.ui" line="29"/>
+        <source>Select the application</source>
+        <translation>Wähle eine Anwendung aus</translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationSelectionDialog.ui" line="42"/>
+        <source>Select a migration</source>
+        <translation>Wähle eine Migration aus</translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationSelectionDialog.ui" line="49"/>
+        <source>Migration:</source>
+        <translation>Migration:</translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationSelectionDialog.ui" line="56"/>
+        <source>Application:</source>
+        <translation>Anwendung:</translation>
+    </message>
+</context>
+<context>
     <name>DjangoMigrationsListDialog</name>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="54"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="67"/>
         <source>Name</source>
         <translation>Name</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="59"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="74"/>
         <source>Migration</source>
         <translation>Migration</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="59"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="74"/>
         <source>Dependencies</source>
         <translation>Abhängigkeiten</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="150"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="174"/>
         <source>Process Generation Error</source>
         <translation>Fehler beim Prozessstart</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="150"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="174"/>
         <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
         <translation>Der Prozess {0} konnte nicht gestartet werden. Stellen Sie sicher, dass er sich im Suchpfad befindet.</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="53"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="66"/>
         <source>Available Migrations</source>
         <translation>Verfügbare Migrationen</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.ui" line="47"/>
+        <location filename="../DjangoMigrationsListDialog.ui" line="50"/>
         <source>Errors</source>
         <translation>Fehler</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="58"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="73"/>
         <source>Migrations Plan</source>
         <translation>Migrationsplan</translation>
     </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="81"/>
+        <source>&amp;Refresh</source>
+        <translation>A&amp;ktualisieren</translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="83"/>
+        <source>Press to refresh the list</source>
+        <translation>Drücken, um die Liste zu aktualisieren</translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="286"/>
+        <source>Apply All Migrations</source>
+        <translation>Alle Migrationen anwenden</translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="312"/>
+        <source>Apply Selected Migrations</source>
+        <translation>Ausgewählte Migrationen anwenden</translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="300"/>
+        <source>Unapply Migrations</source>
+        <translation>Migrationen rückgängig machen</translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="370"/>
+        <source>Make Migrations</source>
+        <translation>Migrationen generieren</translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="307"/>
+        <source>Make Migrations (dry-run)</source>
+        <translation>Migrationen generieren (Trockenlauf)</translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="370"/>
+        <source>Enter a name for the migrations (leave empty to use system supplied name):</source>
+        <translation>Gib einen Namen für die Migration ein (leer lassen, um einen erzeugten Namen zu verwenden):</translation>
+    </message>
 </context>
 <context>
     <name>DjangoPage</name>
@@ -363,17 +469,17 @@
 <context>
     <name>Project</name>
     <message>
-        <location filename="../Project.py" line="704"/>
+        <location filename="../Project.py" line="762"/>
         <source>D&amp;jango</source>
         <translation>D&amp;jango</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1046"/>
+        <location filename="../Project.py" line="1110"/>
         <source>New Form</source>
         <translation>Neues Formular</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1013"/>
+        <location filename="../Project.py" line="1077"/>
         <source>The file already exists! Overwrite it?</source>
         <translation>Die Datei existiert bereits. Überschreiben?</translation>
     </message>
@@ -468,7 +574,7 @@
         <translation>&lt;b&gt;Server starten&lt;/b&gt;&lt;p&gt;Startet den Django Web-Server mittels &quot;manage.py runserve&quot;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1874"/>
+        <location filename="../Project.py" line="1938"/>
         <source>Run Web-Browser</source>
         <translation>Web-Browser starten</translation>
     </message>
@@ -488,7 +594,7 @@
         <translation>&lt;b&gt;Web-Browser starten&lt;/b&gt;&lt;p&gt;Startet den Standard Web-Browser mit der URL des Django Web-Servers.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1325"/>
+        <location filename="../Project.py" line="1389"/>
         <source>About Django</source>
         <translation>Über Django</translation>
     </message>
@@ -528,87 +634,87 @@
         <translation>&lt;b&gt;Synchronisieren&lt;/b&gt;&lt;p&gt;Synchronisiert die Datenbank.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="744"/>
+        <location filename="../Project.py" line="802"/>
         <source>&amp;Database</source>
         <translation>&amp;Datenbank</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1751"/>
+        <location filename="../Project.py" line="1815"/>
         <source>Project</source>
         <translation>Projekt</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1491"/>
+        <location filename="../Project.py" line="1555"/>
         <source>Application</source>
         <translation>Anwendung</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1493"/>
+        <location filename="../Project.py" line="1557"/>
         <source>Start Django</source>
         <translation>Django starten</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1493"/>
+        <location filename="../Project.py" line="1557"/>
         <source>Select if this project should be a Django Project or Application.&lt;br /&gt;Select the empty entry for none.</source>
         <translation>Auswählen, ob ddieses Projekt ein Django Projekt oder eine Django Anwendung sein soll.&lt;br /&gt;Den leeren Eintrag wählen, wenn keines zutrifft.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1570"/>
+        <location filename="../Project.py" line="1634"/>
         <source>Start Django Project</source>
         <translation>Django Projekt starten</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1546"/>
+        <location filename="../Project.py" line="1610"/>
         <source>Django project created successfully.</source>
         <translation>Das Django Projekt wurde erfolgreich erzeugt.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1570"/>
+        <location filename="../Project.py" line="1634"/>
         <source>Enter the name of the new Django project.</source>
         <translation>Gib den Namen des neuen Django Projektes ein.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1598"/>
+        <location filename="../Project.py" line="1662"/>
         <source>Start Django Application</source>
         <translation>Django Anwendung starten</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1632"/>
+        <location filename="../Project.py" line="1696"/>
         <source>Django application created successfully.</source>
         <translation>Die Django Anwendung wurde erfolgreich erzeugt.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1715"/>
+        <location filename="../Project.py" line="1779"/>
         <source>Select Project</source>
         <translation>Wähle Projekt</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1715"/>
+        <location filename="../Project.py" line="1779"/>
         <source>Select the Django project to work with.</source>
         <translation>Wähle das Django Projekt, mit dem gearbeitet werden soll.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1749"/>
+        <location filename="../Project.py" line="1813"/>
         <source>None</source>
         <translation>keines</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2852"/>
+        <location filename="../Project.py" line="3089"/>
         <source>Process Generation Error</source>
         <translation>Fehler beim Prozessstart</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1828"/>
+        <location filename="../Project.py" line="1892"/>
         <source>The Django server could not be started.</source>
         <translation>Der Django Server konnte nicht gestartet werden.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1874"/>
+        <location filename="../Project.py" line="1938"/>
         <source>Could not start the web-browser for the url &quot;{0}&quot;.</source>
         <translation>Der Web-Browser konnt mit der URL &quot;{0}&quot; nicht gestartet werden.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2461"/>
+        <location filename="../Project.py" line="2698"/>
         <source>The Django process could not be started.</source>
         <translation>Der Django Prozess konnte nicht gestartet werden.</translation>
     </message>
@@ -618,7 +724,7 @@
         <translation>&lt;b&gt;Aktuelles Projekt&lt;/b&gt;&lt;p&gt;Wählt das aktuelle Projekt aus. Dies wird bei Django Mehrfach-Projekten benötigt, um zwischen den Projekten umzuschalten.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2124"/>
+        <location filename="../Project.py" line="2361"/>
         <source>Diff Settings</source>
         <translation>Settings Unterschiede</translation>
     </message>
@@ -638,17 +744,17 @@
         <translation>&lt;b&gt;Settings Unterschiede&lt;/b&gt;&lt;p&gt;Zeigt die Änderungen gegenüber dem Standard.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="812"/>
+        <location filename="../Project.py" line="876"/>
         <source>&amp;Tools</source>
         <translation>&amp;Werkzeuge</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1754"/>
+        <location filename="../Project.py" line="1818"/>
         <source>&amp;Current Django project ({0})</source>
         <translation>&amp;Aktuelles Django Projekt ({0})</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2145"/>
+        <location filename="../Project.py" line="2382"/>
         <source>Cleanup</source>
         <translation>Aufräumen</translation>
     </message>
@@ -668,12 +774,12 @@
         <translation>&lt;b&gt;Aufräumen&lt;/b&gt;&lt;p&gt;Löscht veraltete Daten aus der Datenbank.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2157"/>
+        <location filename="../Project.py" line="2394"/>
         <source>Database cleaned up successfully.</source>
         <translation>Datenbank erfolgreich aufgeräumt.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2168"/>
+        <location filename="../Project.py" line="2405"/>
         <source>Validate</source>
         <translation>Validieren</translation>
     </message>
@@ -693,12 +799,12 @@
         <translation>&lt;b&gt;Validieren&lt;/b&gt;&lt;p&gt;Validiert alle installierten Modelle&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1396"/>
+        <location filename="../Project.py" line="1460"/>
         <source>Select Applications</source>
         <translation>Applikation auswählen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1396"/>
+        <location filename="../Project.py" line="1460"/>
         <source>Enter the list of applications separated by spaces.</source>
         <translation>Gib die Liste der Applikationen durch Leerzeichen getrennt ein.</translation>
     </message>
@@ -723,7 +829,7 @@
         <translation>&lt;b&gt;Starte Python Konsole&lt;/b&gt;&lt;p&gt;Startet einen interaktiven Python Interpreter.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2223"/>
+        <location filename="../Project.py" line="2460"/>
         <source>Create Cache Tables</source>
         <translation>Erzeuge Cache Tabellen</translation>
     </message>
@@ -743,12 +849,12 @@
         <translation>&lt;b&gt;Erzeuge Cache Tabellen&lt;/b&gt;&lt;p&gt;Erzeugt die für das SQL Cache Backend benötigten Tabellen&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2230"/>
+        <location filename="../Project.py" line="2467"/>
         <source>Enter the names of the cache tables separated by spaces.</source>
         <translation>Gib die Namen der cache Tabellen durch Leerzeichen getrennt ein.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2245"/>
+        <location filename="../Project.py" line="2482"/>
         <source>Cache tables created successfully.</source>
         <translation>Cache Tabellen erfolgreich erzeugt.</translation>
     </message>
@@ -773,7 +879,7 @@
         <translation>&lt;b&gt;Untersuchen&lt;/b&gt;&lt;p&gt;Untersucht die Datenbanktabellen und gibt ein Django Modellmodul aus.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1915"/>
+        <location filename="../Project.py" line="1979"/>
         <source>Introspect Database</source>
         <translation>Datenbank untersuchen</translation>
     </message>
@@ -798,17 +904,17 @@
         <translation>&lt;b&gt;Neuinitialisierung&lt;/b&gt;&lt;p&gt;Setzt alle Datenbanktabelle in ihren Ursprungszustand zurück.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2073"/>
+        <location filename="../Project.py" line="2137"/>
         <source>Flush Database</source>
         <translation>Datenbank neu initialisieren</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1944"/>
+        <location filename="../Project.py" line="2008"/>
         <source>Flushing the database will destroy all data. Are you sure?</source>
         <translation>Eine Neuinitialisierung der Datenbank wird alle Daten löschen. Sind sie sicher?</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1956"/>
+        <location filename="../Project.py" line="2020"/>
         <source>Database tables flushed successfully.</source>
         <translation>Datenbank erfolgreich neu initialisiert.</translation>
     </message>
@@ -833,7 +939,7 @@
         <translation>Starte &amp;Datenbank Konsole</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2031"/>
+        <location filename="../Project.py" line="2095"/>
         <source>Create Tables</source>
         <translation>Tabellen erzeugen</translation>
     </message>
@@ -853,12 +959,12 @@
         <translation>&lt;b&gt;Tabellen erzeugen&lt;/b&gt;&lt;p&gt;Zeigt die CREATE TABLE SQL Befehle für eine oder mehrere Anwendungen.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="768"/>
+        <location filename="../Project.py" line="826"/>
         <source>Show &amp;SQL</source>
         <translation>Zeige &amp;SQL</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2038"/>
+        <location filename="../Project.py" line="2102"/>
         <source>Create Indexes</source>
         <translation>Indices erzeugen</translation>
     </message>
@@ -873,7 +979,7 @@
         <translation>&lt;b&gt;Indices erzeugen&lt;/b&gt;&lt;p&gt;Zeigt die CREATE INDEX SQL Befehle für eine oder mehrere Anwendungen.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2045"/>
+        <location filename="../Project.py" line="2109"/>
         <source>Create Everything</source>
         <translation>Alles erzeugen</translation>
     </message>
@@ -898,7 +1004,7 @@
         <translation>Zeigt die CREATE INDEX SQL Befehle für eine oder mehrere Anwendungen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2052"/>
+        <location filename="../Project.py" line="2116"/>
         <source>Custom Statements</source>
         <translation>Spezifische Befehle</translation>
     </message>
@@ -918,7 +1024,7 @@
         <translation>&lt;b&gt;Spezifische Befehle&lt;/b&gt;&lt;p&gt;Zeigt spezifische SQL Befehle für eine oder mehrere Anwendungen.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2059"/>
+        <location filename="../Project.py" line="2123"/>
         <source>Drop Tables</source>
         <translation>Tabellen löschen</translation>
     </message>
@@ -953,7 +1059,7 @@
         <translation>&lt;b&gt;Datenbank neu initialisieren&lt;/b&gt;&lt;p/&gt;Zeigt eine Befehlsliste, um alle Datenbanktabelle in ihren Ursprungszustand zurückzusetzen.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2080"/>
+        <location filename="../Project.py" line="2144"/>
         <source>Reset Sequences</source>
         <translation>Sequenzen zurücksetzen</translation>
     </message>
@@ -973,7 +1079,7 @@
         <translation>&lt;b&gt;Sequenzen zurücksetzen&lt;/b&gt;&lt;p&gt;Zeigt die SQL Befehle zum Zurücksetzen von Sequenzen für eine oder mehrere Anwendungen.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2260"/>
+        <location filename="../Project.py" line="2497"/>
         <source>Dump Data</source>
         <translation>Daten sichern</translation>
     </message>
@@ -993,32 +1099,32 @@
         <translation>&lt;b&gt;Daten sichern&lt;/b&lt;&lt;p&gt;Schreibt die Datenbank in ein Fixture.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="832"/>
+        <location filename="../Project.py" line="896"/>
         <source>T&amp;esting</source>
         <translation>&amp;Testen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2018"/>
+        <location filename="../Project.py" line="2082"/>
         <source>SQL Files (*.sql)</source>
         <translation>SQL Dateien (*.sql)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2283"/>
+        <location filename="../Project.py" line="2520"/>
         <source>JSON Files (*.json)</source>
         <translation>JSON Dateien (*.json)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2285"/>
+        <location filename="../Project.py" line="2522"/>
         <source>XML Files (*.xml)</source>
         <translation>XML Dateien (*.xml)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2287"/>
+        <location filename="../Project.py" line="2524"/>
         <source>YAML Files (*.yaml)</source>
         <translation>YAML Dateien (*.yaml)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2299"/>
+        <location filename="../Project.py" line="2536"/>
         <source>Load Data</source>
         <translation>Daten laden</translation>
     </message>
@@ -1078,7 +1184,7 @@
         <translation>&lt;b&gt;Testserver starten&lt;/b&gt;&lt;p&gt;Startet einen Entwicklungsserver mit Daten aus einer Liste von Fixtures.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2390"/>
+        <location filename="../Project.py" line="2627"/>
         <source>The Django test server could not be started.</source>
         <translation>Der Django Testserver konnte nicht gestartet werden.</translation>
     </message>
@@ -1103,113 +1209,113 @@
         <translation>&lt;b&gt;Hilfe&lt;/b&gt;&lt;p&gt;Zeigt den Django Hilfe Index an.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="926"/>
+        <location filename="../Project.py" line="990"/>
         <source>New template...</source>
         <translation>Neues Template...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="935"/>
+        <location filename="../Project.py" line="999"/>
         <source>Update all catalogs</source>
         <translation>Alle Kataloge aktualisieren</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="938"/>
+        <location filename="../Project.py" line="1002"/>
         <source>Update selected catalogs</source>
         <translation>Ausgewählte Kataloge aktualisieren</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="949"/>
+        <location filename="../Project.py" line="1013"/>
         <source>Compile all catalogs</source>
         <translation>Alle Kataloge übersetzen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="952"/>
+        <location filename="../Project.py" line="1016"/>
         <source>Compile selected catalogs</source>
         <translation>Ausgewählte Kataloge übersetzen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2557"/>
+        <location filename="../Project.py" line="2794"/>
         <source>Initializing message catalog for &apos;{0}&apos;</source>
         <translation>Initialisiere Textkatalog für &apos;{0}&apos;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2816"/>
+        <location filename="../Project.py" line="3053"/>
         <source>No current site selected or no site created yet. Aborting...</source>
         <translation>Keine aktuelle Site ausgewählt oder noch keine Site erzeugt. Abbruch...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2577"/>
+        <location filename="../Project.py" line="2814"/>
         <source>
 Message catalog initialized successfully.</source>
         <translation>
 Textkatalog erfolgreich initialisiert.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2689"/>
+        <location filename="../Project.py" line="2926"/>
         <source>Updating message catalogs</source>
         <translation>Aktualisiere Textkataloge</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2780"/>
+        <location filename="../Project.py" line="3017"/>
         <source>No locales detected. Aborting...</source>
         <translation>Keine Sprachen erkannt. Abbruch...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2740"/>
+        <location filename="../Project.py" line="2977"/>
         <source>
 Message catalogs updated successfully.</source>
         <translation>
 Textkataloge erfolgreich aktualisiert.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2806"/>
+        <location filename="../Project.py" line="3043"/>
         <source>Compiling message catalogs</source>
         <translation>Übersetze Textkataloge</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2823"/>
+        <location filename="../Project.py" line="3060"/>
         <source>
 Message catalogs compiled successfully.</source>
         <translation>
 Textkataloge erfolgreich übersetzt.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="942"/>
+        <location filename="../Project.py" line="1006"/>
         <source>Update all catalogs (with obsolete)</source>
         <translation>Alle Kataloge aktualisieren (mit veralteten)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="945"/>
+        <location filename="../Project.py" line="1009"/>
         <source>Update selected catalogs (with obsolete)</source>
         <translation>Ausgewählte Kataloge aktualisieren (mit veralteten)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1644"/>
+        <location filename="../Project.py" line="1708"/>
         <source>Start Global Django Application</source>
         <translation>Globale Django Anwendung beginnen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1644"/>
+        <location filename="../Project.py" line="1708"/>
         <source>Enter the name of the new global Django application.</source>
         <translation>Gib den Namen der neuen globalen Django Anwendung ein.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1666"/>
+        <location filename="../Project.py" line="1730"/>
         <source>Start Local Django Application</source>
         <translation>Lokale Django Anwendung beginnen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1666"/>
+        <location filename="../Project.py" line="1730"/>
         <source>Enter the name of the new local Django application.</source>
         <translation>Gib den Namen der neuen lokalen Django Anwendung ein.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2721"/>
+        <location filename="../Project.py" line="2958"/>
         <source>Updating message catalogs (keeping obsolete messages)</source>
         <translation>Aktualisiere Textkataloge (veraltete Texte behalten)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2420"/>
+        <location filename="../Project.py" line="2657"/>
         <source>Change Password</source>
         <translation>Kennwort ändern</translation>
     </message>
@@ -1249,7 +1355,7 @@
         <translation>&lt;b&gt;Superuser anlegen&lt;/b&gt;&lt;p&gt;Legt eine Superuser Kennung für das Django Projekt an.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2476"/>
+        <location filename="../Project.py" line="2713"/>
         <source>Clear Sessions</source>
         <translation>Sessions löschen</translation>
     </message>
@@ -1269,52 +1375,52 @@
         <translation>&lt;b&gt;Sessions löschen&lt;/b&gt;&lt;p&gt;Löscht abgelaufene Sessions des Django Projektes.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="852"/>
+        <location filename="../Project.py" line="916"/>
         <source>&amp;Authorization</source>
         <translation>&amp;Authorisierung</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="869"/>
+        <location filename="../Project.py" line="933"/>
         <source>&amp;Session</source>
         <translation>&amp;Session</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2420"/>
+        <location filename="../Project.py" line="2657"/>
         <source>Enter the name of the user:</source>
         <translation>Gib den Namen des Nutzers ein:</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2488"/>
+        <location filename="../Project.py" line="2725"/>
         <source>Expired sessions cleared successfully.</source>
         <translation>Abgelaufene Sessions erfolgreich gelöscht.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1325"/>
+        <location filename="../Project.py" line="1389"/>
         <source>&lt;p&gt;Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Version:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;URL:&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;{1}&quot;&gt;{1}&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</source>
         <translation>&lt;p&gt;Django ist ein Python Web-Framework, das eine schnelle Entwicklung und ein klares, pragmatisches Design fördert.&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Version:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;URL:&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;{1}&quot;&gt;{1}&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1615"/>
+        <location filename="../Project.py" line="1679"/>
         <source>&lt;p&gt;The &lt;b&gt;django-admin.py&lt;/b&gt; script is not in the path. Aborting...&lt;/p&gt;</source>
         <translation>&lt;p&gt;Das &lt;b&gt;django-admin.py&lt;/b&gt; Skript ist nicht im Pfad. Abbruch...&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="911"/>
+        <location filename="../Project.py" line="975"/>
         <source>Open with {0}</source>
         <translation>Mit {0} öffnen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2852"/>
+        <location filename="../Project.py" line="3089"/>
         <source>The translations editor process ({0}) could not be started.</source>
         <translation>Der Prozess für den Übersetzungseditor ({0}) konnte nicht gestartet werden.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1046"/>
+        <location filename="../Project.py" line="1110"/>
         <source>&lt;p&gt;The new form file &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;br&gt; Problem: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Die neue Formulardatei &lt;b&gt;{0}&lt;/b&gt; konnte nicht erzeugt werden.&lt;br&gt;Problem: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2066"/>
+        <location filename="../Project.py" line="2130"/>
         <source>Drop Indexes</source>
         <translation>Indices löschen</translation>
     </message>
@@ -1334,50 +1440,140 @@
         <translation>&lt;b&gt;Indices löschen&lt;/b&gt;&lt;p&gt;Zeigt die DROP INDEX SQL Befehle für eine oder mehrere Anwendungen.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="661"/>
+        <location filename="../Project.py" line="660"/>
         <source>Show Migrations</source>
         <translation>Migrationen anzeigen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="661"/>
+        <location filename="../Project.py" line="660"/>
         <source>&amp;Show Migrations</source>
         <translation>Migrationen an&amp;zeigen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="666"/>
+        <location filename="../Project.py" line="665"/>
         <source>Show a list of available migrations</source>
         <translation>Zeigt eine Liste verfügbarer Migrationen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="668"/>
+        <location filename="../Project.py" line="667"/>
         <source>&lt;b&gt;Show Migrations&lt;/b&gt;&lt;p&gt;This shows a list of available migrations of the Django project and their status.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Migrationen anzeigen&lt;/b&gt;&lt;p&gt;Dies zeigt eine Liste der verfügbaren Migrationen des Django Projektes und ihren Status.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="676"/>
+        <location filename="../Project.py" line="675"/>
         <source>Show Migrations Plan</source>
         <translation>Migrationsplan anzeigen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="676"/>
+        <location filename="../Project.py" line="675"/>
         <source>Show Migrations &amp;Plan</source>
         <translation>Migrations&amp;plan anzeigen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="681"/>
+        <location filename="../Project.py" line="680"/>
         <source>Show a list with the migrations plan</source>
         <translation>Zeigt eine Liste mit dem Migrationsplan</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="683"/>
+        <location filename="../Project.py" line="682"/>
         <source>&lt;b&gt;Show Migrations Plan&lt;/b&gt;&lt;p&gt;This shows a list with the migrations plan of the Django project.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Migrationsplan anzeigen&lt;/b&gt;&lt;p&gt;Dies zeigt eine Liste mit dem Migrationplans des Django Projektes.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="795"/>
+        <location filename="../Project.py" line="853"/>
         <source>&amp;Migrations</source>
         <translation>&amp;Migrationen</translation>
     </message>
+    <message>
+        <location filename="../Project.py" line="690"/>
+        <source>Apply All Migrations</source>
+        <translation>Alle Migrationen anwenden</translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="690"/>
+        <source>&amp;Apply All Migrations</source>
+        <translation>Alle Migrationen &amp;anwenden</translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="695"/>
+        <source>Apply all available migrations</source>
+        <translation>Alle verfügbaren Migrationen anwenden</translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="697"/>
+        <source>&lt;b&gt;Apply All Migrations&lt;/b&gt;&lt;p&gt;This applies all migrations of the Django project.&lt;/p&gt;</source>
+        <translation>&lt;b&gt;Alle Migrationen anwenden&lt;/b&gt;&lt;p&gt;Dies wendet alle Migrationen des Django Projektes an.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2192"/>
+        <source>Apply Selected Migrations</source>
+        <translation>Ausgewählte Migrationen anwenden</translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="709"/>
+        <source>Apply selected migrations</source>
+        <translation>Ausgewählte Migrationen anwenden</translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="711"/>
+        <source>&lt;b&gt;Apply Selected Migrations&lt;/b&gt;&lt;p&gt;This applies selected migrations of the Django project.&lt;/p&gt;</source>
+        <translation>&lt;b&gt;Ausgewählte Migrationen anwenden&lt;/b&gt;&lt;p&gt;Dies wendet ausgewählte Migrationen des Django Projektes an.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2251"/>
+        <source>Unapply Migrations</source>
+        <translation>Migrationen rückgängig machen</translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="720"/>
+        <source>&amp;Unapply Migrations</source>
+        <translation>Migrationen &amp;rückgängig machen</translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="725"/>
+        <source>Unapply all migrations for an app</source>
+        <translation>Alle Migrationen einer Anwendung rückgängig machen</translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="727"/>
+        <source>&lt;b&gt;Unapply Migrations&lt;/b&gt;&lt;p&gt;This unapplies all migrations for an app of the Django project.&lt;/p&gt;</source>
+        <translation>&lt;b&gt;Migrationen rückgängig machen&lt;/b&gt;&lt;p&gt;Dies macht alle Migrationen einer Anwendung des Django Projektes rückgängig.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2328"/>
+        <source>Make Migrations</source>
+        <translation>Migrationen generieren</translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="735"/>
+        <source>&amp;Make Migrations</source>
+        <translation>Migrationen &amp;generieren</translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="740"/>
+        <source>Generate migrations for the project</source>
+        <translation>Generiert Migrationen für das Projekt</translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="742"/>
+        <source>&lt;b&gt;Make Migrations&lt;/b&gt;&lt;p&gt;This generates migrations for the Django project.&lt;/p&gt;</source>
+        <translation>&lt;b&gt;Migrationen generieren&lt;/b&gt;&lt;p&gt;Dies generiert Migrationen für das Django Projekt.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2245"/>
+        <source>No migrations available.</source>
+        <translation>Keine Migrationen verfügbar.</translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2217"/>
+        <source>Apply Migrations</source>
+        <translation>Migrationen anwenden</translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2251"/>
+        <source>Select an application:</source>
+        <translation>Wähle eine Anwendung aus:</translation>
+    </message>
 </context>
 <context>
     <name>ProjectDjangoPlugin</name>
diff -r 0f95786f7868 -r 8a4ccc4f1359 ProjectDjango/i18n/django_empty.ts
--- a/ProjectDjango/i18n/django_empty.ts	Sat Dec 17 19:07:02 2016 +0100
+++ b/ProjectDjango/i18n/django_empty.ts	Mon Dec 19 18:44:07 2016 +0100
@@ -150,47 +150,153 @@
     </message>
 </context>
 <context>
+    <name>DjangoMakeMigrationsDialog</name>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="14"/>
+        <source>Make Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="23"/>
+        <source>Applications:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="36"/>
+        <source>Enter the list of applications separated by spaces.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="46"/>
+        <source>Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="53"/>
+        <source>Enter a name for the migration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="66"/>
+        <source>Select to perform a dry-run</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="69"/>
+        <source>Dry-Run only</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DjangoMigrationSelectionDialog</name>
+    <message>
+        <location filename="../DjangoMigrationSelectionDialog.ui" line="14"/>
+        <source>Select Migration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationSelectionDialog.ui" line="29"/>
+        <source>Select the application</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationSelectionDialog.ui" line="42"/>
+        <source>Select a migration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationSelectionDialog.ui" line="49"/>
+        <source>Migration:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationSelectionDialog.ui" line="56"/>
+        <source>Application:</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>DjangoMigrationsListDialog</name>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="54"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="67"/>
         <source>Name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="59"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="74"/>
         <source>Migration</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="59"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="74"/>
         <source>Dependencies</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="150"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="174"/>
         <source>Process Generation Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="150"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="174"/>
         <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="53"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="66"/>
         <source>Available Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.ui" line="47"/>
+        <location filename="../DjangoMigrationsListDialog.ui" line="50"/>
         <source>Errors</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="58"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="73"/>
         <source>Migrations Plan</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="81"/>
+        <source>&amp;Refresh</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="83"/>
+        <source>Press to refresh the list</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="286"/>
+        <source>Apply All Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="312"/>
+        <source>Apply Selected Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="300"/>
+        <source>Unapply Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="370"/>
+        <source>Make Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="307"/>
+        <source>Make Migrations (dry-run)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="370"/>
+        <source>Enter a name for the migrations (leave empty to use system supplied name):</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>DjangoPage</name>
@@ -458,7 +564,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1874"/>
+        <location filename="../Project.py" line="1938"/>
         <source>Run Web-Browser</source>
         <translation type="unfinished"></translation>
     </message>
@@ -478,7 +584,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2223"/>
+        <location filename="../Project.py" line="2460"/>
         <source>Create Cache Tables</source>
         <translation type="unfinished"></translation>
     </message>
@@ -518,7 +624,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1325"/>
+        <location filename="../Project.py" line="1389"/>
         <source>About Django</source>
         <translation type="unfinished"></translation>
     </message>
@@ -618,7 +724,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2031"/>
+        <location filename="../Project.py" line="2095"/>
         <source>Create Tables</source>
         <translation type="unfinished"></translation>
     </message>
@@ -638,7 +744,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2038"/>
+        <location filename="../Project.py" line="2102"/>
         <source>Create Indexes</source>
         <translation type="unfinished"></translation>
     </message>
@@ -658,7 +764,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2045"/>
+        <location filename="../Project.py" line="2109"/>
         <source>Create Everything</source>
         <translation type="unfinished"></translation>
     </message>
@@ -678,7 +784,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2052"/>
+        <location filename="../Project.py" line="2116"/>
         <source>Custom Statements</source>
         <translation type="unfinished"></translation>
     </message>
@@ -698,7 +804,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2059"/>
+        <location filename="../Project.py" line="2123"/>
         <source>Drop Tables</source>
         <translation type="unfinished"></translation>
     </message>
@@ -718,7 +824,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2066"/>
+        <location filename="../Project.py" line="2130"/>
         <source>Drop Indexes</source>
         <translation type="unfinished"></translation>
     </message>
@@ -738,7 +844,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2073"/>
+        <location filename="../Project.py" line="2137"/>
         <source>Flush Database</source>
         <translation type="unfinished"></translation>
     </message>
@@ -758,7 +864,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2080"/>
+        <location filename="../Project.py" line="2144"/>
         <source>Reset Sequences</source>
         <translation type="unfinished"></translation>
     </message>
@@ -778,7 +884,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2124"/>
+        <location filename="../Project.py" line="2361"/>
         <source>Diff Settings</source>
         <translation type="unfinished"></translation>
     </message>
@@ -798,7 +904,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2145"/>
+        <location filename="../Project.py" line="2382"/>
         <source>Cleanup</source>
         <translation type="unfinished"></translation>
     </message>
@@ -818,7 +924,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2168"/>
+        <location filename="../Project.py" line="2405"/>
         <source>Validate</source>
         <translation type="unfinished"></translation>
     </message>
@@ -858,7 +964,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2260"/>
+        <location filename="../Project.py" line="2497"/>
         <source>Dump Data</source>
         <translation type="unfinished"></translation>
     </message>
@@ -878,7 +984,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2299"/>
+        <location filename="../Project.py" line="2536"/>
         <source>Load Data</source>
         <translation type="unfinished"></translation>
     </message>
@@ -938,7 +1044,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2420"/>
+        <location filename="../Project.py" line="2657"/>
         <source>Change Password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -978,7 +1084,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2476"/>
+        <location filename="../Project.py" line="2713"/>
         <source>Clear Sessions</source>
         <translation type="unfinished"></translation>
     </message>
@@ -998,383 +1104,473 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="661"/>
+        <location filename="../Project.py" line="660"/>
         <source>Show Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="661"/>
+        <location filename="../Project.py" line="660"/>
         <source>&amp;Show Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="666"/>
+        <location filename="../Project.py" line="665"/>
         <source>Show a list of available migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="668"/>
+        <location filename="../Project.py" line="667"/>
         <source>&lt;b&gt;Show Migrations&lt;/b&gt;&lt;p&gt;This shows a list of available migrations of the Django project and their status.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="676"/>
+        <location filename="../Project.py" line="675"/>
         <source>Show Migrations Plan</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="676"/>
+        <location filename="../Project.py" line="675"/>
         <source>Show Migrations &amp;Plan</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="681"/>
+        <location filename="../Project.py" line="680"/>
         <source>Show a list with the migrations plan</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="683"/>
+        <location filename="../Project.py" line="682"/>
         <source>&lt;b&gt;Show Migrations Plan&lt;/b&gt;&lt;p&gt;This shows a list with the migrations plan of the Django project.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="704"/>
+        <location filename="../Project.py" line="762"/>
         <source>D&amp;jango</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="744"/>
+        <location filename="../Project.py" line="802"/>
         <source>&amp;Database</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="768"/>
+        <location filename="../Project.py" line="826"/>
         <source>Show &amp;SQL</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="795"/>
+        <location filename="../Project.py" line="853"/>
         <source>&amp;Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="812"/>
+        <location filename="../Project.py" line="876"/>
         <source>&amp;Tools</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="832"/>
+        <location filename="../Project.py" line="896"/>
         <source>T&amp;esting</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="852"/>
+        <location filename="../Project.py" line="916"/>
         <source>&amp;Authorization</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="869"/>
+        <location filename="../Project.py" line="933"/>
         <source>&amp;Session</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="911"/>
+        <location filename="../Project.py" line="975"/>
         <source>Open with {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="926"/>
+        <location filename="../Project.py" line="990"/>
         <source>New template...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="935"/>
+        <location filename="../Project.py" line="999"/>
         <source>Update all catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="938"/>
+        <location filename="../Project.py" line="1002"/>
         <source>Update selected catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="942"/>
+        <location filename="../Project.py" line="1006"/>
         <source>Update all catalogs (with obsolete)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="945"/>
+        <location filename="../Project.py" line="1009"/>
         <source>Update selected catalogs (with obsolete)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="949"/>
+        <location filename="../Project.py" line="1013"/>
         <source>Compile all catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="952"/>
+        <location filename="../Project.py" line="1016"/>
         <source>Compile selected catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1046"/>
+        <location filename="../Project.py" line="1110"/>
         <source>New Form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1013"/>
+        <location filename="../Project.py" line="1077"/>
         <source>The file already exists! Overwrite it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1046"/>
+        <location filename="../Project.py" line="1110"/>
         <source>&lt;p&gt;The new form file &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;br&gt; Problem: {1}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1325"/>
+        <location filename="../Project.py" line="1389"/>
         <source>&lt;p&gt;Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Version:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;URL:&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;{1}&quot;&gt;{1}&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1396"/>
+        <location filename="../Project.py" line="1460"/>
         <source>Select Applications</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1396"/>
+        <location filename="../Project.py" line="1460"/>
         <source>Enter the list of applications separated by spaces.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1751"/>
+        <location filename="../Project.py" line="1815"/>
         <source>Project</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1491"/>
+        <location filename="../Project.py" line="1555"/>
         <source>Application</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1493"/>
+        <location filename="../Project.py" line="1557"/>
         <source>Start Django</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1493"/>
+        <location filename="../Project.py" line="1557"/>
         <source>Select if this project should be a Django Project or Application.&lt;br /&gt;Select the empty entry for none.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1570"/>
+        <location filename="../Project.py" line="1634"/>
         <source>Start Django Project</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1615"/>
+        <location filename="../Project.py" line="1679"/>
         <source>&lt;p&gt;The &lt;b&gt;django-admin.py&lt;/b&gt; script is not in the path. Aborting...&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1546"/>
+        <location filename="../Project.py" line="1610"/>
         <source>Django project created successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1570"/>
+        <location filename="../Project.py" line="1634"/>
         <source>Enter the name of the new Django project.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1598"/>
+        <location filename="../Project.py" line="1662"/>
         <source>Start Django Application</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1632"/>
+        <location filename="../Project.py" line="1696"/>
         <source>Django application created successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1644"/>
+        <location filename="../Project.py" line="1708"/>
         <source>Start Global Django Application</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1644"/>
+        <location filename="../Project.py" line="1708"/>
         <source>Enter the name of the new global Django application.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1666"/>
+        <location filename="../Project.py" line="1730"/>
         <source>Start Local Django Application</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1666"/>
+        <location filename="../Project.py" line="1730"/>
         <source>Enter the name of the new local Django application.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1715"/>
+        <location filename="../Project.py" line="1779"/>
         <source>Select Project</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1715"/>
+        <location filename="../Project.py" line="1779"/>
         <source>Select the Django project to work with.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1749"/>
+        <location filename="../Project.py" line="1813"/>
         <source>None</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1754"/>
+        <location filename="../Project.py" line="1818"/>
         <source>&amp;Current Django project ({0})</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2852"/>
+        <location filename="../Project.py" line="3089"/>
         <source>Process Generation Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1828"/>
+        <location filename="../Project.py" line="1892"/>
         <source>The Django server could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1874"/>
+        <location filename="../Project.py" line="1938"/>
         <source>Could not start the web-browser for the url &quot;{0}&quot;.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2461"/>
+        <location filename="../Project.py" line="2698"/>
         <source>The Django process could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1915"/>
+        <location filename="../Project.py" line="1979"/>
         <source>Introspect Database</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1944"/>
+        <location filename="../Project.py" line="2008"/>
         <source>Flushing the database will destroy all data. Are you sure?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1956"/>
+        <location filename="../Project.py" line="2020"/>
         <source>Database tables flushed successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2018"/>
+        <location filename="../Project.py" line="2082"/>
         <source>SQL Files (*.sql)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2157"/>
+        <location filename="../Project.py" line="2394"/>
         <source>Database cleaned up successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2230"/>
+        <location filename="../Project.py" line="2467"/>
         <source>Enter the names of the cache tables separated by spaces.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2245"/>
+        <location filename="../Project.py" line="2482"/>
         <source>Cache tables created successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2283"/>
+        <location filename="../Project.py" line="2520"/>
         <source>JSON Files (*.json)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2285"/>
+        <location filename="../Project.py" line="2522"/>
         <source>XML Files (*.xml)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2287"/>
+        <location filename="../Project.py" line="2524"/>
         <source>YAML Files (*.yaml)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2390"/>
+        <location filename="../Project.py" line="2627"/>
         <source>The Django test server could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2420"/>
+        <location filename="../Project.py" line="2657"/>
         <source>Enter the name of the user:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2488"/>
+        <location filename="../Project.py" line="2725"/>
         <source>Expired sessions cleared successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2557"/>
+        <location filename="../Project.py" line="2794"/>
         <source>Initializing message catalog for &apos;{0}&apos;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2816"/>
+        <location filename="../Project.py" line="3053"/>
         <source>No current site selected or no site created yet. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2577"/>
+        <location filename="../Project.py" line="2814"/>
         <source>
 Message catalog initialized successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2689"/>
+        <location filename="../Project.py" line="2926"/>
         <source>Updating message catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2780"/>
+        <location filename="../Project.py" line="3017"/>
         <source>No locales detected. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2740"/>
+        <location filename="../Project.py" line="2977"/>
         <source>
 Message catalogs updated successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2721"/>
+        <location filename="../Project.py" line="2958"/>
         <source>Updating message catalogs (keeping obsolete messages)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2806"/>
+        <location filename="../Project.py" line="3043"/>
         <source>Compiling message catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2823"/>
+        <location filename="../Project.py" line="3060"/>
         <source>
 Message catalogs compiled successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2852"/>
+        <location filename="../Project.py" line="3089"/>
         <source>The translations editor process ({0}) could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Project.py" line="690"/>
+        <source>Apply All Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="690"/>
+        <source>&amp;Apply All Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="695"/>
+        <source>Apply all available migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="697"/>
+        <source>&lt;b&gt;Apply All Migrations&lt;/b&gt;&lt;p&gt;This applies all migrations of the Django project.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2192"/>
+        <source>Apply Selected Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="709"/>
+        <source>Apply selected migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="711"/>
+        <source>&lt;b&gt;Apply Selected Migrations&lt;/b&gt;&lt;p&gt;This applies selected migrations of the Django project.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2251"/>
+        <source>Unapply Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="720"/>
+        <source>&amp;Unapply Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="725"/>
+        <source>Unapply all migrations for an app</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="727"/>
+        <source>&lt;b&gt;Unapply Migrations&lt;/b&gt;&lt;p&gt;This unapplies all migrations for an app of the Django project.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2328"/>
+        <source>Make Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="735"/>
+        <source>&amp;Make Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="740"/>
+        <source>Generate migrations for the project</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="742"/>
+        <source>&lt;b&gt;Make Migrations&lt;/b&gt;&lt;p&gt;This generates migrations for the Django project.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2245"/>
+        <source>No migrations available.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2217"/>
+        <source>Apply Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2251"/>
+        <source>Select an application:</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ProjectDjangoPlugin</name>
diff -r 0f95786f7868 -r 8a4ccc4f1359 ProjectDjango/i18n/django_en.ts
--- a/ProjectDjango/i18n/django_en.ts	Sat Dec 17 19:07:02 2016 +0100
+++ b/ProjectDjango/i18n/django_en.ts	Mon Dec 19 18:44:07 2016 +0100
@@ -150,47 +150,153 @@
     </message>
 </context>
 <context>
+    <name>DjangoMakeMigrationsDialog</name>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="14"/>
+        <source>Make Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="23"/>
+        <source>Applications:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="36"/>
+        <source>Enter the list of applications separated by spaces.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="46"/>
+        <source>Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="53"/>
+        <source>Enter a name for the migration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="66"/>
+        <source>Select to perform a dry-run</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="69"/>
+        <source>Dry-Run only</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DjangoMigrationSelectionDialog</name>
+    <message>
+        <location filename="../DjangoMigrationSelectionDialog.ui" line="14"/>
+        <source>Select Migration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationSelectionDialog.ui" line="29"/>
+        <source>Select the application</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationSelectionDialog.ui" line="42"/>
+        <source>Select a migration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationSelectionDialog.ui" line="49"/>
+        <source>Migration:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationSelectionDialog.ui" line="56"/>
+        <source>Application:</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>DjangoMigrationsListDialog</name>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="54"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="67"/>
         <source>Name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="59"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="74"/>
         <source>Migration</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="59"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="74"/>
         <source>Dependencies</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="150"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="174"/>
         <source>Process Generation Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="150"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="174"/>
         <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="53"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="66"/>
         <source>Available Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.ui" line="47"/>
+        <location filename="../DjangoMigrationsListDialog.ui" line="50"/>
         <source>Errors</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="58"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="73"/>
         <source>Migrations Plan</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="81"/>
+        <source>&amp;Refresh</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="83"/>
+        <source>Press to refresh the list</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="286"/>
+        <source>Apply All Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="312"/>
+        <source>Apply Selected Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="300"/>
+        <source>Unapply Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="370"/>
+        <source>Make Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="307"/>
+        <source>Make Migrations (dry-run)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="370"/>
+        <source>Enter a name for the migrations (leave empty to use system supplied name):</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>DjangoPage</name>
@@ -458,7 +564,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1874"/>
+        <location filename="../Project.py" line="1938"/>
         <source>Run Web-Browser</source>
         <translation type="unfinished"></translation>
     </message>
@@ -478,7 +584,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2223"/>
+        <location filename="../Project.py" line="2460"/>
         <source>Create Cache Tables</source>
         <translation type="unfinished"></translation>
     </message>
@@ -518,7 +624,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1325"/>
+        <location filename="../Project.py" line="1389"/>
         <source>About Django</source>
         <translation type="unfinished"></translation>
     </message>
@@ -618,7 +724,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2031"/>
+        <location filename="../Project.py" line="2095"/>
         <source>Create Tables</source>
         <translation type="unfinished"></translation>
     </message>
@@ -638,7 +744,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2038"/>
+        <location filename="../Project.py" line="2102"/>
         <source>Create Indexes</source>
         <translation type="unfinished"></translation>
     </message>
@@ -658,7 +764,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2045"/>
+        <location filename="../Project.py" line="2109"/>
         <source>Create Everything</source>
         <translation type="unfinished"></translation>
     </message>
@@ -678,7 +784,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2052"/>
+        <location filename="../Project.py" line="2116"/>
         <source>Custom Statements</source>
         <translation type="unfinished"></translation>
     </message>
@@ -698,7 +804,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2059"/>
+        <location filename="../Project.py" line="2123"/>
         <source>Drop Tables</source>
         <translation type="unfinished"></translation>
     </message>
@@ -718,7 +824,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2073"/>
+        <location filename="../Project.py" line="2137"/>
         <source>Flush Database</source>
         <translation type="unfinished"></translation>
     </message>
@@ -738,7 +844,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2080"/>
+        <location filename="../Project.py" line="2144"/>
         <source>Reset Sequences</source>
         <translation type="unfinished"></translation>
     </message>
@@ -758,7 +864,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2124"/>
+        <location filename="../Project.py" line="2361"/>
         <source>Diff Settings</source>
         <translation type="unfinished"></translation>
     </message>
@@ -778,7 +884,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2145"/>
+        <location filename="../Project.py" line="2382"/>
         <source>Cleanup</source>
         <translation type="unfinished"></translation>
     </message>
@@ -798,7 +904,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2168"/>
+        <location filename="../Project.py" line="2405"/>
         <source>Validate</source>
         <translation type="unfinished"></translation>
     </message>
@@ -838,7 +944,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2260"/>
+        <location filename="../Project.py" line="2497"/>
         <source>Dump Data</source>
         <translation type="unfinished"></translation>
     </message>
@@ -858,7 +964,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2299"/>
+        <location filename="../Project.py" line="2536"/>
         <source>Load Data</source>
         <translation type="unfinished"></translation>
     </message>
@@ -918,295 +1024,295 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="704"/>
+        <location filename="../Project.py" line="762"/>
         <source>D&amp;jango</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="744"/>
+        <location filename="../Project.py" line="802"/>
         <source>&amp;Database</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="768"/>
+        <location filename="../Project.py" line="826"/>
         <source>Show &amp;SQL</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="812"/>
+        <location filename="../Project.py" line="876"/>
         <source>&amp;Tools</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="832"/>
+        <location filename="../Project.py" line="896"/>
         <source>T&amp;esting</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="926"/>
+        <location filename="../Project.py" line="990"/>
         <source>New template...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="935"/>
+        <location filename="../Project.py" line="999"/>
         <source>Update all catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="938"/>
+        <location filename="../Project.py" line="1002"/>
         <source>Update selected catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="942"/>
+        <location filename="../Project.py" line="1006"/>
         <source>Update all catalogs (with obsolete)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="945"/>
+        <location filename="../Project.py" line="1009"/>
         <source>Update selected catalogs (with obsolete)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="949"/>
+        <location filename="../Project.py" line="1013"/>
         <source>Compile all catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="952"/>
+        <location filename="../Project.py" line="1016"/>
         <source>Compile selected catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1046"/>
+        <location filename="../Project.py" line="1110"/>
         <source>New Form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1013"/>
+        <location filename="../Project.py" line="1077"/>
         <source>The file already exists! Overwrite it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1396"/>
+        <location filename="../Project.py" line="1460"/>
         <source>Select Applications</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1396"/>
+        <location filename="../Project.py" line="1460"/>
         <source>Enter the list of applications separated by spaces.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1751"/>
+        <location filename="../Project.py" line="1815"/>
         <source>Project</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1491"/>
+        <location filename="../Project.py" line="1555"/>
         <source>Application</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1493"/>
+        <location filename="../Project.py" line="1557"/>
         <source>Start Django</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1493"/>
+        <location filename="../Project.py" line="1557"/>
         <source>Select if this project should be a Django Project or Application.&lt;br /&gt;Select the empty entry for none.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1570"/>
+        <location filename="../Project.py" line="1634"/>
         <source>Start Django Project</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1546"/>
+        <location filename="../Project.py" line="1610"/>
         <source>Django project created successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1570"/>
+        <location filename="../Project.py" line="1634"/>
         <source>Enter the name of the new Django project.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1598"/>
+        <location filename="../Project.py" line="1662"/>
         <source>Start Django Application</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1632"/>
+        <location filename="../Project.py" line="1696"/>
         <source>Django application created successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1644"/>
+        <location filename="../Project.py" line="1708"/>
         <source>Start Global Django Application</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1644"/>
+        <location filename="../Project.py" line="1708"/>
         <source>Enter the name of the new global Django application.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1666"/>
+        <location filename="../Project.py" line="1730"/>
         <source>Start Local Django Application</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1666"/>
+        <location filename="../Project.py" line="1730"/>
         <source>Enter the name of the new local Django application.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1715"/>
+        <location filename="../Project.py" line="1779"/>
         <source>Select Project</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1715"/>
+        <location filename="../Project.py" line="1779"/>
         <source>Select the Django project to work with.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1749"/>
+        <location filename="../Project.py" line="1813"/>
         <source>None</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1754"/>
+        <location filename="../Project.py" line="1818"/>
         <source>&amp;Current Django project ({0})</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2852"/>
+        <location filename="../Project.py" line="3089"/>
         <source>Process Generation Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1828"/>
+        <location filename="../Project.py" line="1892"/>
         <source>The Django server could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1874"/>
+        <location filename="../Project.py" line="1938"/>
         <source>Could not start the web-browser for the url &quot;{0}&quot;.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2461"/>
+        <location filename="../Project.py" line="2698"/>
         <source>The Django process could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1915"/>
+        <location filename="../Project.py" line="1979"/>
         <source>Introspect Database</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1944"/>
+        <location filename="../Project.py" line="2008"/>
         <source>Flushing the database will destroy all data. Are you sure?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1956"/>
+        <location filename="../Project.py" line="2020"/>
         <source>Database tables flushed successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2018"/>
+        <location filename="../Project.py" line="2082"/>
         <source>SQL Files (*.sql)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2157"/>
+        <location filename="../Project.py" line="2394"/>
         <source>Database cleaned up successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2230"/>
+        <location filename="../Project.py" line="2467"/>
         <source>Enter the names of the cache tables separated by spaces.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2245"/>
+        <location filename="../Project.py" line="2482"/>
         <source>Cache tables created successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2283"/>
+        <location filename="../Project.py" line="2520"/>
         <source>JSON Files (*.json)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2285"/>
+        <location filename="../Project.py" line="2522"/>
         <source>XML Files (*.xml)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2287"/>
+        <location filename="../Project.py" line="2524"/>
         <source>YAML Files (*.yaml)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2390"/>
+        <location filename="../Project.py" line="2627"/>
         <source>The Django test server could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2557"/>
+        <location filename="../Project.py" line="2794"/>
         <source>Initializing message catalog for &apos;{0}&apos;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2816"/>
+        <location filename="../Project.py" line="3053"/>
         <source>No current site selected or no site created yet. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2577"/>
+        <location filename="../Project.py" line="2814"/>
         <source>
 Message catalog initialized successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2689"/>
+        <location filename="../Project.py" line="2926"/>
         <source>Updating message catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2780"/>
+        <location filename="../Project.py" line="3017"/>
         <source>No locales detected. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2740"/>
+        <location filename="../Project.py" line="2977"/>
         <source>
 Message catalogs updated successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2721"/>
+        <location filename="../Project.py" line="2958"/>
         <source>Updating message catalogs (keeping obsolete messages)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2806"/>
+        <location filename="../Project.py" line="3043"/>
         <source>Compiling message catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2823"/>
+        <location filename="../Project.py" line="3060"/>
         <source>
 Message catalogs compiled successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2420"/>
+        <location filename="../Project.py" line="2657"/>
         <source>Change Password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1246,7 +1352,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2476"/>
+        <location filename="../Project.py" line="2713"/>
         <source>Clear Sessions</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1266,52 +1372,52 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="852"/>
+        <location filename="../Project.py" line="916"/>
         <source>&amp;Authorization</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="869"/>
+        <location filename="../Project.py" line="933"/>
         <source>&amp;Session</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2420"/>
+        <location filename="../Project.py" line="2657"/>
         <source>Enter the name of the user:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2488"/>
+        <location filename="../Project.py" line="2725"/>
         <source>Expired sessions cleared successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1325"/>
+        <location filename="../Project.py" line="1389"/>
         <source>&lt;p&gt;Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Version:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;URL:&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;{1}&quot;&gt;{1}&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1615"/>
+        <location filename="../Project.py" line="1679"/>
         <source>&lt;p&gt;The &lt;b&gt;django-admin.py&lt;/b&gt; script is not in the path. Aborting...&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="911"/>
+        <location filename="../Project.py" line="975"/>
         <source>Open with {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2852"/>
+        <location filename="../Project.py" line="3089"/>
         <source>The translations editor process ({0}) could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1046"/>
+        <location filename="../Project.py" line="1110"/>
         <source>&lt;p&gt;The new form file &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;br&gt; Problem: {1}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2066"/>
+        <location filename="../Project.py" line="2130"/>
         <source>Drop Indexes</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1331,50 +1437,140 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="661"/>
+        <location filename="../Project.py" line="660"/>
         <source>Show Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="661"/>
+        <location filename="../Project.py" line="660"/>
         <source>&amp;Show Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="666"/>
+        <location filename="../Project.py" line="665"/>
         <source>Show a list of available migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="668"/>
+        <location filename="../Project.py" line="667"/>
         <source>&lt;b&gt;Show Migrations&lt;/b&gt;&lt;p&gt;This shows a list of available migrations of the Django project and their status.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="676"/>
+        <location filename="../Project.py" line="675"/>
         <source>Show Migrations Plan</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="676"/>
+        <location filename="../Project.py" line="675"/>
         <source>Show Migrations &amp;Plan</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="681"/>
+        <location filename="../Project.py" line="680"/>
         <source>Show a list with the migrations plan</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="683"/>
+        <location filename="../Project.py" line="682"/>
         <source>&lt;b&gt;Show Migrations Plan&lt;/b&gt;&lt;p&gt;This shows a list with the migrations plan of the Django project.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="795"/>
+        <location filename="../Project.py" line="853"/>
         <source>&amp;Migrations</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Project.py" line="690"/>
+        <source>Apply All Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="690"/>
+        <source>&amp;Apply All Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="695"/>
+        <source>Apply all available migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="697"/>
+        <source>&lt;b&gt;Apply All Migrations&lt;/b&gt;&lt;p&gt;This applies all migrations of the Django project.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2192"/>
+        <source>Apply Selected Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="709"/>
+        <source>Apply selected migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="711"/>
+        <source>&lt;b&gt;Apply Selected Migrations&lt;/b&gt;&lt;p&gt;This applies selected migrations of the Django project.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2251"/>
+        <source>Unapply Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="720"/>
+        <source>&amp;Unapply Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="725"/>
+        <source>Unapply all migrations for an app</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="727"/>
+        <source>&lt;b&gt;Unapply Migrations&lt;/b&gt;&lt;p&gt;This unapplies all migrations for an app of the Django project.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2328"/>
+        <source>Make Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="735"/>
+        <source>&amp;Make Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="740"/>
+        <source>Generate migrations for the project</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="742"/>
+        <source>&lt;b&gt;Make Migrations&lt;/b&gt;&lt;p&gt;This generates migrations for the Django project.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2245"/>
+        <source>No migrations available.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2217"/>
+        <source>Apply Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2251"/>
+        <source>Select an application:</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ProjectDjangoPlugin</name>
diff -r 0f95786f7868 -r 8a4ccc4f1359 ProjectDjango/i18n/django_es.ts
--- a/ProjectDjango/i18n/django_es.ts	Sat Dec 17 19:07:02 2016 +0100
+++ b/ProjectDjango/i18n/django_es.ts	Mon Dec 19 18:44:07 2016 +0100
@@ -150,47 +150,153 @@
     </message>
 </context>
 <context>
+    <name>DjangoMakeMigrationsDialog</name>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="14"/>
+        <source>Make Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="23"/>
+        <source>Applications:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="36"/>
+        <source>Enter the list of applications separated by spaces.</source>
+        <translation type="unfinished">Introduzca la lista de aplicaciones separadas por espacios.</translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="46"/>
+        <source>Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="53"/>
+        <source>Enter a name for the migration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="66"/>
+        <source>Select to perform a dry-run</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="69"/>
+        <source>Dry-Run only</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DjangoMigrationSelectionDialog</name>
+    <message>
+        <location filename="../DjangoMigrationSelectionDialog.ui" line="14"/>
+        <source>Select Migration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationSelectionDialog.ui" line="29"/>
+        <source>Select the application</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationSelectionDialog.ui" line="42"/>
+        <source>Select a migration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationSelectionDialog.ui" line="49"/>
+        <source>Migration:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationSelectionDialog.ui" line="56"/>
+        <source>Application:</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>DjangoMigrationsListDialog</name>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="54"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="67"/>
         <source>Name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="59"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="74"/>
         <source>Migration</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="59"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="74"/>
         <source>Dependencies</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="150"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="174"/>
         <source>Process Generation Error</source>
         <translation type="unfinished">Error de Generación de Proceso</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="150"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="174"/>
         <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
         <translation type="unfinished">El proceso {0} no ha podido ejecutarse. Asegúrese de que está en la ruta de búsqueda.</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="53"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="66"/>
         <source>Available Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.ui" line="47"/>
+        <location filename="../DjangoMigrationsListDialog.ui" line="50"/>
         <source>Errors</source>
         <translation type="unfinished">Errores</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="58"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="73"/>
         <source>Migrations Plan</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="81"/>
+        <source>&amp;Refresh</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="83"/>
+        <source>Press to refresh the list</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="286"/>
+        <source>Apply All Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="312"/>
+        <source>Apply Selected Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="300"/>
+        <source>Unapply Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="370"/>
+        <source>Make Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="307"/>
+        <source>Make Migrations (dry-run)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="370"/>
+        <source>Enter a name for the migrations (leave empty to use system supplied name):</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>DjangoPage</name>
@@ -325,7 +431,7 @@
         <translation>Seleccionar Entorno Virtual para Python 2</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/DjangoPage.py" line="179"/>
+        <location filename="../ConfigurationPage/DjangoPage.ui" line="380"/>
         <source>Translations Editor</source>
         <translation>Editor de Traducciones</translation>
     </message>
@@ -363,17 +469,17 @@
 <context>
     <name>Project</name>
     <message>
-        <location filename="../Project.py" line="704"/>
+        <location filename="../Project.py" line="762"/>
         <source>D&amp;jango</source>
         <translation>D&amp;jango</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1046"/>
+        <location filename="../Project.py" line="1110"/>
         <source>New Form</source>
         <translation>Nuevo Formulario</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1013"/>
+        <location filename="../Project.py" line="1077"/>
         <source>The file already exists! Overwrite it?</source>
         <translation>¡El archivo ya existe! ¿Sobreescribirlo?</translation>
     </message>
@@ -468,7 +574,7 @@
         <translation>&lt;b&gt;Iniciar Servidor&lt;/b&gt;&lt;p&gt;Inicia el servidor Web Django utilizando  &quot;manage.py runserver&quot;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1874"/>
+        <location filename="../Project.py" line="1938"/>
         <source>Run Web-Browser</source>
         <translation>Ejecutar Navegador Web</translation>
     </message>
@@ -488,7 +594,7 @@
         <translation>&lt;b&gt;Ejecutar Navegador Web&lt;/b&gt;&lt;p&gt;Inicia el Navegador Web  por defecto con la URL del servidor Web Django.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1325"/>
+        <location filename="../Project.py" line="1389"/>
         <source>About Django</source>
         <translation>Acerca de Django</translation>
     </message>
@@ -528,88 +634,88 @@
         <translation>&lt;b&gt;Sincronizar&lt;/b&gt;&lt;p&gt;Sincroniza la base de datos.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="744"/>
+        <location filename="../Project.py" line="802"/>
         <source>&amp;Database</source>
         <translation>Base de &amp;Datos</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1751"/>
+        <location filename="../Project.py" line="1815"/>
         <source>Project</source>
         <translation>Proyecto</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1491"/>
+        <location filename="../Project.py" line="1555"/>
         <source>Application</source>
         <translation>Aplicación</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1493"/>
+        <location filename="../Project.py" line="1557"/>
         <source>Start Django</source>
         <translation>Iniciar Django</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1493"/>
+        <location filename="../Project.py" line="1557"/>
         <source>Select if this project should be a Django Project or Application.&lt;br /&gt;Select the empty entry for none.</source>
         <translation>Seleccionar si este proyecto debería ser un Proyecto o Aplicación Django.
 &lt;br/&gt;Dejar en blanco para no seleccionar ninguno.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1570"/>
+        <location filename="../Project.py" line="1634"/>
         <source>Start Django Project</source>
         <translation>Iniciar Proyecto Django</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1546"/>
+        <location filename="../Project.py" line="1610"/>
         <source>Django project created successfully.</source>
         <translation>Proyecto Django creado correctamente.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1570"/>
+        <location filename="../Project.py" line="1634"/>
         <source>Enter the name of the new Django project.</source>
         <translation>Introduzca el nombre del nuevo proyecto Django.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1598"/>
+        <location filename="../Project.py" line="1662"/>
         <source>Start Django Application</source>
         <translation>Iniciar Aplicación Django</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1632"/>
+        <location filename="../Project.py" line="1696"/>
         <source>Django application created successfully.</source>
         <translation>Aplicación Django creada correctamente.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1715"/>
+        <location filename="../Project.py" line="1779"/>
         <source>Select Project</source>
         <translation>Seleccionar Proyecto</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1715"/>
+        <location filename="../Project.py" line="1779"/>
         <source>Select the Django project to work with.</source>
         <translation>Seleccionar el proyecto Django con el que trabajar.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1749"/>
+        <location filename="../Project.py" line="1813"/>
         <source>None</source>
         <translation>Ninguno</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2852"/>
+        <location filename="../Project.py" line="3089"/>
         <source>Process Generation Error</source>
         <translation>Error de Generación de Proceso</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1828"/>
+        <location filename="../Project.py" line="1892"/>
         <source>The Django server could not be started.</source>
         <translation>No se ha podido iniciar el servidor Django.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1874"/>
+        <location filename="../Project.py" line="1938"/>
         <source>Could not start the web-browser for the url &quot;{0}&quot;.</source>
         <translation>No se ha podido iniciar el navegador web para la url &quot;{0}&quot;.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2461"/>
+        <location filename="../Project.py" line="2698"/>
         <source>The Django process could not be started.</source>
         <translation>No se ha podido iniciar el proceso Django.</translation>
     </message>
@@ -619,7 +725,7 @@
         <translation>&lt;b&gt;Proyecto Actual&lt;/b&gt;&lt;p&gt;Selecciona el proyecto actual. Se utiliza para cambiar de proyecto en multiproyectos Django.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2124"/>
+        <location filename="../Project.py" line="2361"/>
         <source>Diff Settings</source>
         <translation>Configuración de Diff</translation>
     </message>
@@ -639,7 +745,7 @@
         <translation>&lt;b&gt;Configuración de Diff&lt;/b&gt;&lt;p&gt;Muestra los cambios hechos a la configuración.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2145"/>
+        <location filename="../Project.py" line="2382"/>
         <source>Cleanup</source>
         <translation>Limpiar</translation>
     </message>
@@ -659,7 +765,7 @@
         <translation>&lt;b&gt;Limpiar&lt;/b&gt;&lt;p&gt;Limpiar datos antiguos de la base de datos.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2168"/>
+        <location filename="../Project.py" line="2405"/>
         <source>Validate</source>
         <translation>Validar</translation>
     </message>
@@ -679,27 +785,27 @@
         <translation>&lt;b&gt;Validar&lt;/b&gt;&lt;p&gt;Valida todos los modelos instalados.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="812"/>
+        <location filename="../Project.py" line="876"/>
         <source>&amp;Tools</source>
         <translation>Herramien&amp;tas</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1396"/>
+        <location filename="../Project.py" line="1460"/>
         <source>Select Applications</source>
         <translation>Seleccionar Aplicaciones</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1396"/>
+        <location filename="../Project.py" line="1460"/>
         <source>Enter the list of applications separated by spaces.</source>
         <translation>Introduzca la lista de aplicaciones separadas por espacios.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1754"/>
+        <location filename="../Project.py" line="1818"/>
         <source>&amp;Current Django project ({0})</source>
         <translation>Proyec&amp;to Django actual ({0})</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2157"/>
+        <location filename="../Project.py" line="2394"/>
         <source>Database cleaned up successfully.</source>
         <translation>Base de datos limpiada con éxito.</translation>
     </message>
@@ -724,7 +830,7 @@
         <translation>&lt;b&gt;Iniciar Consola de Python&lt;/b&gt;&lt;p&gt;Inicia un intérprete interactivo de Python.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2223"/>
+        <location filename="../Project.py" line="2460"/>
         <source>Create Cache Tables</source>
         <translation>Crear Tablas de Caché</translation>
     </message>
@@ -744,12 +850,12 @@
         <translation>&lt;b&gt;Crear Tablas de Caché&lt;/b&gt;&lt;p&gt;Crea las tablas necesarias para utilizar el backend de caché de SQL.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2230"/>
+        <location filename="../Project.py" line="2467"/>
         <source>Enter the names of the cache tables separated by spaces.</source>
         <translation>Introduzca los nombres de las tablas de caché separadas por espacios.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2245"/>
+        <location filename="../Project.py" line="2482"/>
         <source>Cache tables created successfully.</source>
         <translation>Tablas de caché creadas con éxito.</translation>
     </message>
@@ -774,7 +880,7 @@
         <translation>&lt;b&gt;Introspección&lt;/b&gt;&lt;p&gt;Realiza introspección de las tablas en la base de datos y devuelve a un módulo de modelo de Django.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1915"/>
+        <location filename="../Project.py" line="1979"/>
         <source>Introspect Database</source>
         <translation>Introspección de Base de datos</translation>
     </message>
@@ -799,17 +905,17 @@
         <translation>&lt;b&gt;Flush&lt;/b&gt;&lt;p&gt;Devuelve todas las tablas de la base de datos al estado que tenían al terminar su instalación.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2073"/>
+        <location filename="../Project.py" line="2137"/>
         <source>Flush Database</source>
         <translation>Hacer Flush de la base de datos</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1944"/>
+        <location filename="../Project.py" line="2008"/>
         <source>Flushing the database will destroy all data. Are you sure?</source>
         <translation>Un flush de la base de datos destruirá todos los datos. ¿Está seguro?</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1956"/>
+        <location filename="../Project.py" line="2020"/>
         <source>Database tables flushed successfully.</source>
         <translation>Se ha realizado una operación flush sobre la base de datos con éxito.</translation>
     </message>
@@ -834,7 +940,7 @@
         <translation>Iniciar Consola de &amp;Cliente</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2031"/>
+        <location filename="../Project.py" line="2095"/>
         <source>Create Tables</source>
         <translation>Crear Tablas</translation>
     </message>
@@ -854,12 +960,12 @@
         <translation>&lt;b&gt;Crear Tablas&lt;/b&gt;&lt;p&gt;Imprime las sentencias SQL CREATE TABLE para una o más aplicaciones.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="768"/>
+        <location filename="../Project.py" line="826"/>
         <source>Show &amp;SQL</source>
         <translation>Mostrar &amp;SQL</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2038"/>
+        <location filename="../Project.py" line="2102"/>
         <source>Create Indexes</source>
         <translation>Crear Índices</translation>
     </message>
@@ -874,7 +980,7 @@
         <translation>&lt;b&gt;Crear Índices&lt;/b&gt;&lt;p&gt;Imprime las sentencias SQL CREATE INDEX para una o más aplicaciones.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2045"/>
+        <location filename="../Project.py" line="2109"/>
         <source>Create Everything</source>
         <translation>Crear Todo</translation>
     </message>
@@ -899,7 +1005,7 @@
         <translation>Imprime las sentencias SQL CREATE INDEX para una o más aplicaciones</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2052"/>
+        <location filename="../Project.py" line="2116"/>
         <source>Custom Statements</source>
         <translation>Sentencias Personalizadas</translation>
     </message>
@@ -919,7 +1025,7 @@
         <translation>&lt;b&gt;Sentencias Personalizadas&lt;/b&gt;&lt;p&gt;Imprime las sentencias sql personalizadas de modificación de tablas para una o más aplicaciones.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2059"/>
+        <location filename="../Project.py" line="2123"/>
         <source>Drop Tables</source>
         <translation>Borrar Tablas</translation>
     </message>
@@ -954,7 +1060,7 @@
         <translation>&lt;b&gt;Hacer Flush de la base de datos&lt;/b&gt;&lt;p&gt;Imprime una lista de sentencias para retornar todas las tablas de la base de datos al estado que tenían despues de su instalación.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2080"/>
+        <location filename="../Project.py" line="2144"/>
         <source>Reset Sequences</source>
         <translation>Resetear Secuencias</translation>
     </message>
@@ -974,7 +1080,7 @@
         <translation>&lt;b&gt;Resetear Secuencias&lt;/b&gt;&lt;p&gt;Imprime las sentencias SQL para resetear secuencias para una o más aplicaciones.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2260"/>
+        <location filename="../Project.py" line="2497"/>
         <source>Dump Data</source>
         <translation>Volcado de Datos</translation>
     </message>
@@ -994,32 +1100,32 @@
         <translation>&lt;b&gt;Volcado de Datos&lt;/b&gt;&lt;p&gt;Volcado de los datos de una base de datos a una fixtuer.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="832"/>
+        <location filename="../Project.py" line="896"/>
         <source>T&amp;esting</source>
         <translation>T&amp;esting</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2018"/>
+        <location filename="../Project.py" line="2082"/>
         <source>SQL Files (*.sql)</source>
         <translation>Archivos SQL (*.sql)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2283"/>
+        <location filename="../Project.py" line="2520"/>
         <source>JSON Files (*.json)</source>
         <translation>Archivos JSON (*.json)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2285"/>
+        <location filename="../Project.py" line="2522"/>
         <source>XML Files (*.xml)</source>
         <translation>Archivos XML (*.xml)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2287"/>
+        <location filename="../Project.py" line="2524"/>
         <source>YAML Files (*.yaml)</source>
         <translation>Archivos YAML (*.yaml)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2299"/>
+        <location filename="../Project.py" line="2536"/>
         <source>Load Data</source>
         <translation>Cargar Datos</translation>
     </message>
@@ -1079,7 +1185,7 @@
         <translation>&lt;b&gt;Ejecutar Testserver&lt;/b&gt;&lt;p&gt;Ejecutar un servidor de desarrollo con datos de un conjunto de fixtures.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2390"/>
+        <location filename="../Project.py" line="2627"/>
         <source>The Django test server could not be started.</source>
         <translation>No se ha podido iniciar el servidor de tests Django.</translation>
     </message>
@@ -1104,112 +1210,112 @@
         <translation>&lt;b&gt;Ayuda&lt;/b&gt;&lt;p&gt;Muestra la página de índice de ayuda de Django.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="926"/>
+        <location filename="../Project.py" line="990"/>
         <source>New template...</source>
         <translation>Nueva plantilla...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="935"/>
+        <location filename="../Project.py" line="999"/>
         <source>Update all catalogs</source>
         <translation>Actualizar todos los catálogos</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="938"/>
+        <location filename="../Project.py" line="1002"/>
         <source>Update selected catalogs</source>
         <translation>Actualizar los catálogos seleccionados</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="949"/>
+        <location filename="../Project.py" line="1013"/>
         <source>Compile all catalogs</source>
         <translation>Compilar todos los catálogos</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="952"/>
+        <location filename="../Project.py" line="1016"/>
         <source>Compile selected catalogs</source>
         <translation>Compilar los catálogos seleccionados</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2557"/>
+        <location filename="../Project.py" line="2794"/>
         <source>Initializing message catalog for &apos;{0}&apos;</source>
         <translation>Inicializando catálogo de mensajes para &apos;{0}&apos;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2816"/>
+        <location filename="../Project.py" line="3053"/>
         <source>No current site selected or no site created yet. Aborting...</source>
         <translation>No se ha seleccionado un sitio o no se ha creado un sitio todavía. Abortando...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2577"/>
+        <location filename="../Project.py" line="2814"/>
         <source>
 Message catalog initialized successfully.</source>
         <translation>Catálogo de mensajes iniciado con éxito.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2689"/>
+        <location filename="../Project.py" line="2926"/>
         <source>Updating message catalogs</source>
         <translation>Actualizando catálogos de mensajes</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2780"/>
+        <location filename="../Project.py" line="3017"/>
         <source>No locales detected. Aborting...</source>
         <translation>No se ha detectado ningún idioma. Abortando...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2740"/>
+        <location filename="../Project.py" line="2977"/>
         <source>
 Message catalogs updated successfully.</source>
         <translation>
 Catálogos de mensajes actualizados con éxito.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2806"/>
+        <location filename="../Project.py" line="3043"/>
         <source>Compiling message catalogs</source>
         <translation>Compilando catálogos de mensajes</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2823"/>
+        <location filename="../Project.py" line="3060"/>
         <source>
 Message catalogs compiled successfully.</source>
         <translation>
 Catálogos de mensajes compilados con éxito.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="942"/>
+        <location filename="../Project.py" line="1006"/>
         <source>Update all catalogs (with obsolete)</source>
         <translation>Acutalizar todos los catálogos (con obsoletos)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="945"/>
+        <location filename="../Project.py" line="1009"/>
         <source>Update selected catalogs (with obsolete)</source>
         <translation>Actualizar los catálogos seleccionados (con obsoletos)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1644"/>
+        <location filename="../Project.py" line="1708"/>
         <source>Start Global Django Application</source>
         <translation>Iniciar Aplicación Global Django</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1644"/>
+        <location filename="../Project.py" line="1708"/>
         <source>Enter the name of the new global Django application.</source>
         <translation>Introducir el nombre de la nueva aplicación global Django.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1666"/>
+        <location filename="../Project.py" line="1730"/>
         <source>Start Local Django Application</source>
         <translation>Iniciar Aplicación Local Django</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1666"/>
+        <location filename="../Project.py" line="1730"/>
         <source>Enter the name of the new local Django application.</source>
         <translation>Introducir el nombre de la nueva aplicación local Django.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2721"/>
+        <location filename="../Project.py" line="2958"/>
         <source>Updating message catalogs (keeping obsolete messages)</source>
         <translation>Actualizando los catálogos de mensajes (conservando mensajes obsoletos)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2420"/>
+        <location filename="../Project.py" line="2657"/>
         <source>Change Password</source>
         <translation>Cambiar Contraseña</translation>
     </message>
@@ -1249,7 +1355,7 @@
         <translation>&lt;b&gt;Crear Superusuario&lt;/b&gt;&lt;p&gt;Crear una cuenta de superusuario para el proyecto Django.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2476"/>
+        <location filename="../Project.py" line="2713"/>
         <source>Clear Sessions</source>
         <translation>Limpiar Sesiones</translation>
     </message>
@@ -1269,52 +1375,52 @@
         <translation>&lt;b&gt;Limpiar Sesiones&lt;/b&gt;&lt;p&gt;Limpiar sesiones expiradas del proyecto Django.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="852"/>
+        <location filename="../Project.py" line="916"/>
         <source>&amp;Authorization</source>
         <translation>&amp;Autorización</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="869"/>
+        <location filename="../Project.py" line="933"/>
         <source>&amp;Session</source>
         <translation>&amp;Sesión</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2420"/>
+        <location filename="../Project.py" line="2657"/>
         <source>Enter the name of the user:</source>
         <translation>Introducir el nombre del usuario:</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2488"/>
+        <location filename="../Project.py" line="2725"/>
         <source>Expired sessions cleared successfully.</source>
         <translation>Sesiones expiradas limpiadas con éxito.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1325"/>
+        <location filename="../Project.py" line="1389"/>
         <source>&lt;p&gt;Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Version:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;URL:&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;{1}&quot;&gt;{1}&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</source>
         <translation>&lt;p&gt;Django es un Web framework de alto nivel que fomenta un rápido desarrollo y un diseño limpio y pragmático.&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Versión:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;URL:&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;{1}&quot;&gt;{1}&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1615"/>
+        <location filename="../Project.py" line="1679"/>
         <source>&lt;p&gt;The &lt;b&gt;django-admin.py&lt;/b&gt; script is not in the path. Aborting...&lt;/p&gt;</source>
         <translation>&lt;p&gt;El script &lt;b&gt;django-admin.py&lt;/b&gt; no está en la ruta. Abortando...&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="911"/>
+        <location filename="../Project.py" line="975"/>
         <source>Open with {0}</source>
         <translation>Abrir con {0}</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2852"/>
+        <location filename="../Project.py" line="3089"/>
         <source>The translations editor process ({0}) could not be started.</source>
         <translation>El proceso para el editor de traducciones {0} no ha podido ejecutarse.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1046"/>
+        <location filename="../Project.py" line="1110"/>
         <source>&lt;p&gt;The new form file &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;br&gt; Problem: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;El nuevo archivo de formulario &lt;b&gt;{0}&lt;/b&gt; no ha podido ser creado.&lt;br&gt;Problema: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2066"/>
+        <location filename="../Project.py" line="2130"/>
         <source>Drop Indexes</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1334,50 +1440,140 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="661"/>
+        <location filename="../Project.py" line="660"/>
         <source>Show Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="661"/>
+        <location filename="../Project.py" line="660"/>
         <source>&amp;Show Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="666"/>
+        <location filename="../Project.py" line="665"/>
         <source>Show a list of available migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="668"/>
+        <location filename="../Project.py" line="667"/>
         <source>&lt;b&gt;Show Migrations&lt;/b&gt;&lt;p&gt;This shows a list of available migrations of the Django project and their status.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="676"/>
+        <location filename="../Project.py" line="675"/>
         <source>Show Migrations Plan</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="676"/>
+        <location filename="../Project.py" line="675"/>
         <source>Show Migrations &amp;Plan</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="681"/>
+        <location filename="../Project.py" line="680"/>
         <source>Show a list with the migrations plan</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="683"/>
+        <location filename="../Project.py" line="682"/>
         <source>&lt;b&gt;Show Migrations Plan&lt;/b&gt;&lt;p&gt;This shows a list with the migrations plan of the Django project.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="795"/>
+        <location filename="../Project.py" line="853"/>
         <source>&amp;Migrations</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Project.py" line="690"/>
+        <source>Apply All Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="690"/>
+        <source>&amp;Apply All Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="695"/>
+        <source>Apply all available migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="697"/>
+        <source>&lt;b&gt;Apply All Migrations&lt;/b&gt;&lt;p&gt;This applies all migrations of the Django project.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2192"/>
+        <source>Apply Selected Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="709"/>
+        <source>Apply selected migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="711"/>
+        <source>&lt;b&gt;Apply Selected Migrations&lt;/b&gt;&lt;p&gt;This applies selected migrations of the Django project.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2251"/>
+        <source>Unapply Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="720"/>
+        <source>&amp;Unapply Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="725"/>
+        <source>Unapply all migrations for an app</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="727"/>
+        <source>&lt;b&gt;Unapply Migrations&lt;/b&gt;&lt;p&gt;This unapplies all migrations for an app of the Django project.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2328"/>
+        <source>Make Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="735"/>
+        <source>&amp;Make Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="740"/>
+        <source>Generate migrations for the project</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="742"/>
+        <source>&lt;b&gt;Make Migrations&lt;/b&gt;&lt;p&gt;This generates migrations for the Django project.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2245"/>
+        <source>No migrations available.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2217"/>
+        <source>Apply Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2251"/>
+        <source>Select an application:</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ProjectDjangoPlugin</name>
diff -r 0f95786f7868 -r 8a4ccc4f1359 ProjectDjango/i18n/django_ru.ts
--- a/ProjectDjango/i18n/django_ru.ts	Sat Dec 17 19:07:02 2016 +0100
+++ b/ProjectDjango/i18n/django_ru.ts	Mon Dec 19 18:44:07 2016 +0100
@@ -150,47 +150,153 @@
     </message>
 </context>
 <context>
+    <name>DjangoMakeMigrationsDialog</name>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="14"/>
+        <source>Make Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="23"/>
+        <source>Applications:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="36"/>
+        <source>Enter the list of applications separated by spaces.</source>
+        <translation type="unfinished">Введите список приложений, разделенных пробелами.</translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="46"/>
+        <source>Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="53"/>
+        <source>Enter a name for the migration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="66"/>
+        <source>Select to perform a dry-run</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="69"/>
+        <source>Dry-Run only</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DjangoMigrationSelectionDialog</name>
+    <message>
+        <location filename="../DjangoMigrationSelectionDialog.ui" line="14"/>
+        <source>Select Migration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationSelectionDialog.ui" line="29"/>
+        <source>Select the application</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationSelectionDialog.ui" line="42"/>
+        <source>Select a migration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationSelectionDialog.ui" line="49"/>
+        <source>Migration:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationSelectionDialog.ui" line="56"/>
+        <source>Application:</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>DjangoMigrationsListDialog</name>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="54"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="67"/>
         <source>Name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="59"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="74"/>
         <source>Migration</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="59"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="74"/>
         <source>Dependencies</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="150"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="174"/>
         <source>Process Generation Error</source>
         <translation type="unfinished">Ошибка при запуске процесса</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="150"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="174"/>
         <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
         <translation type="unfinished">Процесс {0} не может быть запущен. Убедитесь, что к нему указан путь доступа.</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="53"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="66"/>
         <source>Available Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.ui" line="47"/>
+        <location filename="../DjangoMigrationsListDialog.ui" line="50"/>
         <source>Errors</source>
         <translation type="unfinished">Ошибки</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="58"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="73"/>
         <source>Migrations Plan</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="81"/>
+        <source>&amp;Refresh</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="83"/>
+        <source>Press to refresh the list</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="286"/>
+        <source>Apply All Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="312"/>
+        <source>Apply Selected Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="300"/>
+        <source>Unapply Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="370"/>
+        <source>Make Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="307"/>
+        <source>Make Migrations (dry-run)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="370"/>
+        <source>Enter a name for the migrations (leave empty to use system supplied name):</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>DjangoPage</name>
@@ -325,7 +431,7 @@
         <translation>Выбор виртуального окружения для Python 2</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/DjangoPage.py" line="179"/>
+        <location filename="../ConfigurationPage/DjangoPage.ui" line="380"/>
         <source>Translations Editor</source>
         <translation>Редактор для перевода</translation>
     </message>
@@ -363,17 +469,17 @@
 <context>
     <name>Project</name>
     <message>
-        <location filename="../Project.py" line="704"/>
+        <location filename="../Project.py" line="762"/>
         <source>D&amp;jango</source>
         <translation>D&amp;jango</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1046"/>
+        <location filename="../Project.py" line="1110"/>
         <source>New Form</source>
         <translation>Создание новой формы</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1013"/>
+        <location filename="../Project.py" line="1077"/>
         <source>The file already exists! Overwrite it?</source>
         <translation>Файл уже существует! Переписать его?</translation>
     </message>
@@ -468,7 +574,7 @@
         <translation>&lt;b&gt;Сервер разработки&lt;/b&gt;&lt;p&gt;Запуск Django Web сервера разработки посредством команды: &quot;manage.py runserver&quot;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1874"/>
+        <location filename="../Project.py" line="1938"/>
         <source>Run Web-Browser</source>
         <translation>Запуск Web-браузера администрирования</translation>
     </message>
@@ -488,7 +594,7 @@
         <translation>&lt;b&gt;Запуск Web-браузера&lt;/b&gt;&lt;p&gt;Запуск Web-браузера, используемого по умолчанию, с адресом Django Web сервера.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1325"/>
+        <location filename="../Project.py" line="1389"/>
         <source>About Django</source>
         <translation>О Django</translation>
     </message>
@@ -528,87 +634,87 @@
         <translation>&lt;b&gt;Синхронизация&lt;/b&gt;&lt;p&gt;Синхронизация базы данных.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="744"/>
+        <location filename="../Project.py" line="802"/>
         <source>&amp;Database</source>
         <translation>&amp;База данных</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1751"/>
+        <location filename="../Project.py" line="1815"/>
         <source>Project</source>
         <translation>Project</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1491"/>
+        <location filename="../Project.py" line="1555"/>
         <source>Application</source>
         <translation>Application</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1493"/>
+        <location filename="../Project.py" line="1557"/>
         <source>Start Django</source>
         <translation>Старт Django</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1493"/>
+        <location filename="../Project.py" line="1557"/>
         <source>Select if this project should be a Django Project or Application.&lt;br /&gt;Select the empty entry for none.</source>
         <translation>Сделайте соответствующий выбор, если это  будет Django проект или приложение.&lt;br/&gt;Если нет - выберите пустой ввод.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1570"/>
+        <location filename="../Project.py" line="1634"/>
         <source>Start Django Project</source>
         <translation>Создание Django проекта</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1546"/>
+        <location filename="../Project.py" line="1610"/>
         <source>Django project created successfully.</source>
         <translation>Django проект успешно создан.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1570"/>
+        <location filename="../Project.py" line="1634"/>
         <source>Enter the name of the new Django project.</source>
         <translation>Введите имя нового Django проекта.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1598"/>
+        <location filename="../Project.py" line="1662"/>
         <source>Start Django Application</source>
         <translation>Создание Django приложения</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1632"/>
+        <location filename="../Project.py" line="1696"/>
         <source>Django application created successfully.</source>
         <translation>Django приложение успешно создано.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1715"/>
+        <location filename="../Project.py" line="1779"/>
         <source>Select Project</source>
         <translation>Выбор проекта</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1715"/>
+        <location filename="../Project.py" line="1779"/>
         <source>Select the Django project to work with.</source>
         <translation>Выбор Django проекта для работы.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1749"/>
+        <location filename="../Project.py" line="1813"/>
         <source>None</source>
         <translation>none</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2852"/>
+        <location filename="../Project.py" line="3089"/>
         <source>Process Generation Error</source>
         <translation>Ошибка при запуске процесса</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1828"/>
+        <location filename="../Project.py" line="1892"/>
         <source>The Django server could not be started.</source>
         <translation>Невозможно запустить Django сервер.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1874"/>
+        <location filename="../Project.py" line="1938"/>
         <source>Could not start the web-browser for the url &quot;{0}&quot;.</source>
         <translation>Невозможно открыть web-браузер с адресом &quot;{0}&quot;.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2461"/>
+        <location filename="../Project.py" line="2698"/>
         <source>The Django process could not be started.</source>
         <translation>Невозможно запустить Django процесс.</translation>
     </message>
@@ -618,7 +724,7 @@
         <translation>&lt;b&gt;Текущий проект&lt;/b&gt;&lt;p&gt;Выберите текущий проект. Используется в мультипроекте Django проектов для переключения между ними.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2124"/>
+        <location filename="../Project.py" line="2361"/>
         <source>Diff Settings</source>
         <translation>Отличие текущих параметров от параметров настройки Django по умолчанию</translation>
     </message>
@@ -638,7 +744,7 @@
         <translation>&lt;b&gt;Различия настройки&lt;/b&gt;&lt;p&gt;Показ изменений, сделанных в параметрах настройки.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2145"/>
+        <location filename="../Project.py" line="2382"/>
         <source>Cleanup</source>
         <translation>Очистка</translation>
     </message>
@@ -658,7 +764,7 @@
         <translation>&lt;b&gt;Очистка&lt;/b&gt;&lt;p&gt;Очистка базы данных от старых данных.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2168"/>
+        <location filename="../Project.py" line="2405"/>
         <source>Validate</source>
         <translation>Проверка</translation>
     </message>
@@ -678,27 +784,27 @@
         <translation>&lt;b&gt;Проверка&lt;/b&gt;&lt;p&gt;Проверка всех установленных модулей.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="812"/>
+        <location filename="../Project.py" line="876"/>
         <source>&amp;Tools</source>
         <translation>&amp;Сервис</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1396"/>
+        <location filename="../Project.py" line="1460"/>
         <source>Select Applications</source>
         <translation>Выбор приложений</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1396"/>
+        <location filename="../Project.py" line="1460"/>
         <source>Enter the list of applications separated by spaces.</source>
         <translation>Введите список приложений, разделенных пробелами.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1754"/>
+        <location filename="../Project.py" line="1818"/>
         <source>&amp;Current Django project ({0})</source>
         <translation>Текущий &amp;Django проект ({0})</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2157"/>
+        <location filename="../Project.py" line="2394"/>
         <source>Database cleaned up successfully.</source>
         <translation>База данных очищена успешно.</translation>
     </message>
@@ -723,7 +829,7 @@
         <translation>&lt;b&gt;Запуск консоли Python&lt;/b&gt;&lt;p&gt;Запуск интерактивного интерпретатора Python.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2223"/>
+        <location filename="../Project.py" line="2460"/>
         <source>Create Cache Tables</source>
         <translation>Создание кэша таблиц</translation>
     </message>
@@ -743,12 +849,12 @@
         <translation>&lt;b&gt;Создание кэша таблиц&lt;/b&gt;&lt;p&gt;Для создания таблиц необходимо использовать  SQL кэш бэкенд.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2230"/>
+        <location filename="../Project.py" line="2467"/>
         <source>Enter the names of the cache tables separated by spaces.</source>
         <translation>Введите имена таблиц кэша, разделенных пробелами.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2245"/>
+        <location filename="../Project.py" line="2482"/>
         <source>Cache tables created successfully.</source>
         <translation>Кэш таблиц создан успешно.</translation>
     </message>
@@ -773,7 +879,7 @@
         <translation>&lt;b&gt;Анализ таблиц базы данных&lt;/b&gt;&lt;p&gt;Анализ таблиц базы данных, определение структуры и вывод кода модуля Django моделей.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1915"/>
+        <location filename="../Project.py" line="1979"/>
         <source>Introspect Database</source>
         <translation>Анализ таблиц базы данных и генерация кода модуля Django моделей</translation>
     </message>
@@ -798,17 +904,17 @@
         <translation>&lt;b&gt;Очистка&lt;/b&gt;&lt;p&gt;Возврат всех таблиц базы данных к состоянию на момент инсталяции базы.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2073"/>
+        <location filename="../Project.py" line="2137"/>
         <source>Flush Database</source>
         <translation>Очистка базы данных</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1944"/>
+        <location filename="../Project.py" line="2008"/>
         <source>Flushing the database will destroy all data. Are you sure?</source>
         <translation>Очистка  базы данных приведет к уничтожению всех данных. Вы действительно этого хотите?</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1956"/>
+        <location filename="../Project.py" line="2020"/>
         <source>Database tables flushed successfully.</source>
         <translation>Таблицы базы данных успешно очищены.</translation>
     </message>
@@ -833,7 +939,7 @@
         <translation>Старт консоли &amp;клиента</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2031"/>
+        <location filename="../Project.py" line="2095"/>
         <source>Create Tables</source>
         <translation>Создание таблиц</translation>
     </message>
@@ -853,12 +959,12 @@
         <translation>&lt;b&gt;Создание таблиц&lt;/b&gt;&lt;p&gt;Вывод SQL операторов CREATE TABLE для одного или нескольких приложений.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="768"/>
+        <location filename="../Project.py" line="826"/>
         <source>Show &amp;SQL</source>
         <translation>&amp;SQL</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2038"/>
+        <location filename="../Project.py" line="2102"/>
         <source>Create Indexes</source>
         <translation>Создание индексов</translation>
     </message>
@@ -873,7 +979,7 @@
         <translation>&lt;b&gt;Создание индексов&lt;/b&gt;&lt;p&gt;Вывод SQL операторов CREATE INDEX для одного или нескольких приложений.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2045"/>
+        <location filename="../Project.py" line="2109"/>
         <source>Create Everything</source>
         <translation>Создать все</translation>
     </message>
@@ -898,7 +1004,7 @@
         <translation>Выводит SQL операторы CREATE INDEX для одного или нескольких приложений</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2052"/>
+        <location filename="../Project.py" line="2116"/>
         <source>Custom Statements</source>
         <translation>Пользовательские запросы</translation>
     </message>
@@ -918,7 +1024,7 @@
         <translation>&lt;b&gt;Пользовательские запросы&lt;/b&gt;&lt;p&gt;Вывод дополнительной таблицы, модифицированной SQL запросами. для одного или нескольких приложений.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2059"/>
+        <location filename="../Project.py" line="2123"/>
         <source>Drop Tables</source>
         <translation>Удаление таблиц</translation>
     </message>
@@ -953,7 +1059,7 @@
         <translation>&lt;b&gt;Очистка базы данных&lt;/b&gt;&lt;p&gt;Вывод списка SQL операторов для возврата всех таблиц  базы данных к состоянию на момент ее инсталяции.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2080"/>
+        <location filename="../Project.py" line="2144"/>
         <source>Reset Sequences</source>
         <translation>Сброс цепочки</translation>
     </message>
@@ -973,7 +1079,7 @@
         <translation>&lt;b&gt;Сброс цепочки&lt;/b&gt;&lt;p&gt;Вывод SQL операторов для сброса последовательности для одного или нескольких приложений.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2260"/>
+        <location filename="../Project.py" line="2497"/>
         <source>Dump Data</source>
         <translation>Выводит текущие данные из базы данных</translation>
     </message>
@@ -993,32 +1099,32 @@
         <translation>&lt;b&gt;Выгрузка данных&lt;/b&gt;&lt;p&gt;Выгружает текущие данные базы данных в файлы оснастки.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="832"/>
+        <location filename="../Project.py" line="896"/>
         <source>T&amp;esting</source>
         <translation>Т&amp;естирование</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2018"/>
+        <location filename="../Project.py" line="2082"/>
         <source>SQL Files (*.sql)</source>
         <translation>SQL Files (*.sql)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2283"/>
+        <location filename="../Project.py" line="2520"/>
         <source>JSON Files (*.json)</source>
         <translation>JSON Files (*.json)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2285"/>
+        <location filename="../Project.py" line="2522"/>
         <source>XML Files (*.xml)</source>
         <translation>XML Files (*.xml)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2287"/>
+        <location filename="../Project.py" line="2524"/>
         <source>YAML Files (*.yaml)</source>
         <translation>YAML Files (*.yaml)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2299"/>
+        <location filename="../Project.py" line="2536"/>
         <source>Load Data</source>
         <translation>Загрузка данных в базу данных из файлов оснастки</translation>
     </message>
@@ -1078,7 +1184,7 @@
         <translation>&lt;b&gt;Запуск сервера тестов&lt;/b&gt;&lt;p&gt;Запуск сервера разработки с данными из набора оснастки.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2390"/>
+        <location filename="../Project.py" line="2627"/>
         <source>The Django test server could not be started.</source>
         <translation>Невозможно запустить Django сервер тестов.</translation>
     </message>
@@ -1103,105 +1209,105 @@
         <translation>&lt;b&gt;Справка&lt;/b&gt;&lt;p&gt;Показ страницы индексов справки  Django.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="926"/>
+        <location filename="../Project.py" line="990"/>
         <source>New template...</source>
         <translation>Новый шаблон...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="935"/>
+        <location filename="../Project.py" line="999"/>
         <source>Update all catalogs</source>
         <translation>Обновить все каталоги</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="938"/>
+        <location filename="../Project.py" line="1002"/>
         <source>Update selected catalogs</source>
         <translation>Обновить выбранные каталоги</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="949"/>
+        <location filename="../Project.py" line="1013"/>
         <source>Compile all catalogs</source>
         <translation>Компиляция всех каталогов</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="952"/>
+        <location filename="../Project.py" line="1016"/>
         <source>Compile selected catalogs</source>
         <translation>Компиляция выбранных каталогов</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2557"/>
+        <location filename="../Project.py" line="2794"/>
         <source>Initializing message catalog for &apos;{0}&apos;</source>
         <translation>Инициализация каталога сообщений для &apos;{0}&apos;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2816"/>
+        <location filename="../Project.py" line="3053"/>
         <source>No current site selected or no site created yet. Aborting...</source>
         <translation>Текущий сайт не выбран или еще не создан. Прерывание выполнения...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2689"/>
+        <location filename="../Project.py" line="2926"/>
         <source>Updating message catalogs</source>
         <translation>Обновление каталогов сообщений</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2780"/>
+        <location filename="../Project.py" line="3017"/>
         <source>No locales detected. Aborting...</source>
         <translation>Локали не найдены. Прерывание выполнения...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2740"/>
+        <location filename="../Project.py" line="2977"/>
         <source>
 Message catalogs updated successfully.</source>
         <translation>
 Каталоги сообщений успешно обновлены.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2806"/>
+        <location filename="../Project.py" line="3043"/>
         <source>Compiling message catalogs</source>
         <translation>Компиляция каталогов сообщений</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2823"/>
+        <location filename="../Project.py" line="3060"/>
         <source>
 Message catalogs compiled successfully.</source>
         <translation>Каталоги сообщений успешно компилированы.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="942"/>
+        <location filename="../Project.py" line="1006"/>
         <source>Update all catalogs (with obsolete)</source>
         <translation>Обновить все каталоги (с устаревшими)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="945"/>
+        <location filename="../Project.py" line="1009"/>
         <source>Update selected catalogs (with obsolete)</source>
         <translation>Обновить выбранные каталоги (с устаревшими)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1644"/>
+        <location filename="../Project.py" line="1708"/>
         <source>Start Global Django Application</source>
         <translation>Выполнение Django global приложения</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1644"/>
+        <location filename="../Project.py" line="1708"/>
         <source>Enter the name of the new global Django application.</source>
         <translation>Введите имя нового Djangо global приложения. </translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1666"/>
+        <location filename="../Project.py" line="1730"/>
         <source>Start Local Django Application</source>
         <translation>Выполнение Django local приложения</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1666"/>
+        <location filename="../Project.py" line="1730"/>
         <source>Enter the name of the new local Django application.</source>
         <translation>Введите имя нового Django local приложения. </translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2721"/>
+        <location filename="../Project.py" line="2958"/>
         <source>Updating message catalogs (keeping obsolete messages)</source>
         <translation>Обновление каталогов сообщений (с сохранением устаревших сообщений)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2420"/>
+        <location filename="../Project.py" line="2657"/>
         <source>Change Password</source>
         <translation>Смена пароля</translation>
     </message>
@@ -1241,7 +1347,7 @@
         <translation>&lt;b&gt;Создание суперпользователя&lt;/b&gt;&lt;p&gt;Создание аккаунта суперпользователя для Django проекта.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2476"/>
+        <location filename="../Project.py" line="2713"/>
         <source>Clear Sessions</source>
         <translation>Очистка сессии</translation>
     </message>
@@ -1261,58 +1367,58 @@
         <translation>&lt;b&gt;Очистка сессий&lt;/b&gt;&lt;p&gt;Очистка истекших сессий Django проекта.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="852"/>
+        <location filename="../Project.py" line="916"/>
         <source>&amp;Authorization</source>
         <translation>&amp;Авторизация</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="869"/>
+        <location filename="../Project.py" line="933"/>
         <source>&amp;Session</source>
         <translation>&amp;Сессия</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2420"/>
+        <location filename="../Project.py" line="2657"/>
         <source>Enter the name of the user:</source>
         <translation>Введите имя пользователя:</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2488"/>
+        <location filename="../Project.py" line="2725"/>
         <source>Expired sessions cleared successfully.</source>
         <translation>Истекшая сессия успешно очищена.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1325"/>
+        <location filename="../Project.py" line="1389"/>
         <source>&lt;p&gt;Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Version:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;URL:&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;{1}&quot;&gt;{1}&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</source>
         <translation>&lt;p&gt;Django это высокоуровневый веб фреймворк созданный на Python, воодушевляющий к развитому, чистому и практичному дизайну.&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Версия:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;URL:&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;{1}&quot;&gt;{1}&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1615"/>
+        <location filename="../Project.py" line="1679"/>
         <source>&lt;p&gt;The &lt;b&gt;django-admin.py&lt;/b&gt; script is not in the path. Aborting...&lt;/p&gt;</source>
         <translation>&lt;p&gt;Скрипт &lt;b&gt;django-admin.py&lt;/b&gt; не найден в путях доступа. Прерывание...&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="911"/>
+        <location filename="../Project.py" line="975"/>
         <source>Open with {0}</source>
         <translation>Открыть с помощью {0}</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2852"/>
+        <location filename="../Project.py" line="3089"/>
         <source>The translations editor process ({0}) could not be started.</source>
         <translation>Невозможен запуск редактора переводов ({0}).</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1046"/>
+        <location filename="../Project.py" line="1110"/>
         <source>&lt;p&gt;The new form file &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;br&gt; Problem: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Невозможно создать файл новой формы &lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt; Проблема: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2577"/>
+        <location filename="../Project.py" line="2814"/>
         <source>
 Message catalog initialized successfully.</source>
         <translation>Каталог сообщений успешно инициализирован.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2066"/>
+        <location filename="../Project.py" line="2130"/>
         <source>Drop Indexes</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1332,50 +1438,140 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="661"/>
+        <location filename="../Project.py" line="660"/>
         <source>Show Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="661"/>
+        <location filename="../Project.py" line="660"/>
         <source>&amp;Show Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="666"/>
+        <location filename="../Project.py" line="665"/>
         <source>Show a list of available migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="668"/>
+        <location filename="../Project.py" line="667"/>
         <source>&lt;b&gt;Show Migrations&lt;/b&gt;&lt;p&gt;This shows a list of available migrations of the Django project and their status.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="676"/>
+        <location filename="../Project.py" line="675"/>
         <source>Show Migrations Plan</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="676"/>
+        <location filename="../Project.py" line="675"/>
         <source>Show Migrations &amp;Plan</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="681"/>
+        <location filename="../Project.py" line="680"/>
         <source>Show a list with the migrations plan</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="683"/>
+        <location filename="../Project.py" line="682"/>
         <source>&lt;b&gt;Show Migrations Plan&lt;/b&gt;&lt;p&gt;This shows a list with the migrations plan of the Django project.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="795"/>
+        <location filename="../Project.py" line="853"/>
         <source>&amp;Migrations</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Project.py" line="690"/>
+        <source>Apply All Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="690"/>
+        <source>&amp;Apply All Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="695"/>
+        <source>Apply all available migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="697"/>
+        <source>&lt;b&gt;Apply All Migrations&lt;/b&gt;&lt;p&gt;This applies all migrations of the Django project.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2192"/>
+        <source>Apply Selected Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="709"/>
+        <source>Apply selected migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="711"/>
+        <source>&lt;b&gt;Apply Selected Migrations&lt;/b&gt;&lt;p&gt;This applies selected migrations of the Django project.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2251"/>
+        <source>Unapply Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="720"/>
+        <source>&amp;Unapply Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="725"/>
+        <source>Unapply all migrations for an app</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="727"/>
+        <source>&lt;b&gt;Unapply Migrations&lt;/b&gt;&lt;p&gt;This unapplies all migrations for an app of the Django project.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2328"/>
+        <source>Make Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="735"/>
+        <source>&amp;Make Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="740"/>
+        <source>Generate migrations for the project</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="742"/>
+        <source>&lt;b&gt;Make Migrations&lt;/b&gt;&lt;p&gt;This generates migrations for the Django project.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2245"/>
+        <source>No migrations available.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2217"/>
+        <source>Apply Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2251"/>
+        <source>Select an application:</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ProjectDjangoPlugin</name>
diff -r 0f95786f7868 -r 8a4ccc4f1359 ProjectDjango/i18n/django_tr.ts
--- a/ProjectDjango/i18n/django_tr.ts	Sat Dec 17 19:07:02 2016 +0100
+++ b/ProjectDjango/i18n/django_tr.ts	Mon Dec 19 18:44:07 2016 +0100
@@ -150,47 +150,153 @@
     </message>
 </context>
 <context>
+    <name>DjangoMakeMigrationsDialog</name>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="14"/>
+        <source>Make Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="23"/>
+        <source>Applications:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="36"/>
+        <source>Enter the list of applications separated by spaces.</source>
+        <translation type="unfinished">Uygulamaların listesin boşluklarla ayırarak giriniz.</translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="46"/>
+        <source>Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="53"/>
+        <source>Enter a name for the migration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="66"/>
+        <source>Select to perform a dry-run</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="69"/>
+        <source>Dry-Run only</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DjangoMigrationSelectionDialog</name>
+    <message>
+        <location filename="../DjangoMigrationSelectionDialog.ui" line="14"/>
+        <source>Select Migration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationSelectionDialog.ui" line="29"/>
+        <source>Select the application</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationSelectionDialog.ui" line="42"/>
+        <source>Select a migration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationSelectionDialog.ui" line="49"/>
+        <source>Migration:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationSelectionDialog.ui" line="56"/>
+        <source>Application:</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>DjangoMigrationsListDialog</name>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="54"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="67"/>
         <source>Name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="59"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="74"/>
         <source>Migration</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="59"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="74"/>
         <source>Dependencies</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="150"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="174"/>
         <source>Process Generation Error</source>
         <translation type="unfinished">İşlem Üretecinde Hata</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="150"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="174"/>
         <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
         <translation type="unfinished">{0} işlemi başlatılamadı.Büyük ihtimalle, problem arama yolunda.</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="53"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="66"/>
         <source>Available Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.ui" line="47"/>
+        <location filename="../DjangoMigrationsListDialog.ui" line="50"/>
         <source>Errors</source>
         <translation type="unfinished">Hatalar</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="58"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="73"/>
         <source>Migrations Plan</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="81"/>
+        <source>&amp;Refresh</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="83"/>
+        <source>Press to refresh the list</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="286"/>
+        <source>Apply All Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="312"/>
+        <source>Apply Selected Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="300"/>
+        <source>Unapply Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="370"/>
+        <source>Make Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="307"/>
+        <source>Make Migrations (dry-run)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="370"/>
+        <source>Enter a name for the migrations (leave empty to use system supplied name):</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>DjangoPage</name>
@@ -325,7 +431,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/DjangoPage.py" line="179"/>
+        <location filename="../ConfigurationPage/DjangoPage.ui" line="380"/>
         <source>Translations Editor</source>
         <translation type="unfinished"></translation>
     </message>
@@ -458,7 +564,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1874"/>
+        <location filename="../Project.py" line="1938"/>
         <source>Run Web-Browser</source>
         <translation>Web-Gözatıcısını Çalıştır</translation>
     </message>
@@ -478,7 +584,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2223"/>
+        <location filename="../Project.py" line="2460"/>
         <source>Create Cache Tables</source>
         <translation type="unfinished">Gizli Tabloları Oluştur</translation>
     </message>
@@ -498,7 +604,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1325"/>
+        <location filename="../Project.py" line="1389"/>
         <source>About Django</source>
         <translation>Django Hakkında</translation>
     </message>
@@ -598,7 +704,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2031"/>
+        <location filename="../Project.py" line="2095"/>
         <source>Create Tables</source>
         <translation>Tabloyu Oluştur</translation>
     </message>
@@ -618,7 +724,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2038"/>
+        <location filename="../Project.py" line="2102"/>
         <source>Create Indexes</source>
         <translation>Katalogları oluştur</translation>
     </message>
@@ -638,7 +744,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2045"/>
+        <location filename="../Project.py" line="2109"/>
         <source>Create Everything</source>
         <translation>Herşeyi Oluştur</translation>
     </message>
@@ -658,7 +764,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2052"/>
+        <location filename="../Project.py" line="2116"/>
         <source>Custom Statements</source>
         <translation>Özel İfadeler</translation>
     </message>
@@ -678,7 +784,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2059"/>
+        <location filename="../Project.py" line="2123"/>
         <source>Drop Tables</source>
         <translation type="unfinished"></translation>
     </message>
@@ -698,7 +804,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2073"/>
+        <location filename="../Project.py" line="2137"/>
         <source>Flush Database</source>
         <translation type="unfinished"></translation>
     </message>
@@ -718,7 +824,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2080"/>
+        <location filename="../Project.py" line="2144"/>
         <source>Reset Sequences</source>
         <translation type="unfinished"></translation>
     </message>
@@ -738,7 +844,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2124"/>
+        <location filename="../Project.py" line="2361"/>
         <source>Diff Settings</source>
         <translation type="unfinished"></translation>
     </message>
@@ -758,7 +864,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2145"/>
+        <location filename="../Project.py" line="2382"/>
         <source>Cleanup</source>
         <translation>Tasfiye</translation>
     </message>
@@ -778,7 +884,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2168"/>
+        <location filename="../Project.py" line="2405"/>
         <source>Validate</source>
         <translation>Geçerli</translation>
     </message>
@@ -818,7 +924,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2260"/>
+        <location filename="../Project.py" line="2497"/>
         <source>Dump Data</source>
         <translation>Boş Veri</translation>
     </message>
@@ -838,7 +944,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2299"/>
+        <location filename="../Project.py" line="2536"/>
         <source>Load Data</source>
         <translation>Veriyi Yükle</translation>
     </message>
@@ -898,187 +1004,187 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="704"/>
+        <location filename="../Project.py" line="762"/>
         <source>D&amp;jango</source>
         <translation>D&amp;jango</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="744"/>
+        <location filename="../Project.py" line="802"/>
         <source>&amp;Database</source>
         <translation>&amp;Veritabanı</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="768"/>
+        <location filename="../Project.py" line="826"/>
         <source>Show &amp;SQL</source>
         <translation>&amp;SQL u göster</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="812"/>
+        <location filename="../Project.py" line="876"/>
         <source>&amp;Tools</source>
         <translation>&amp;Araçlar</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="832"/>
+        <location filename="../Project.py" line="896"/>
         <source>T&amp;esting</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1046"/>
+        <location filename="../Project.py" line="1110"/>
         <source>New Form</source>
         <translation>Yeni Form</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1013"/>
+        <location filename="../Project.py" line="1077"/>
         <source>The file already exists! Overwrite it?</source>
         <translation>Bu dosya halihazırda var! Üzerine yazılsın mı?</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1396"/>
+        <location filename="../Project.py" line="1460"/>
         <source>Select Applications</source>
         <translation>Uygulamayı Seç</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1396"/>
+        <location filename="../Project.py" line="1460"/>
         <source>Enter the list of applications separated by spaces.</source>
         <translation>Uygulamaların listesin boşluklarla ayırarak giriniz.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1751"/>
+        <location filename="../Project.py" line="1815"/>
         <source>Project</source>
         <translation>Proje</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1491"/>
+        <location filename="../Project.py" line="1555"/>
         <source>Application</source>
         <translation>Uygulama</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1493"/>
+        <location filename="../Project.py" line="1557"/>
         <source>Start Django</source>
         <translation>Djangoyu Başlat</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1493"/>
+        <location filename="../Project.py" line="1557"/>
         <source>Select if this project should be a Django Project or Application.&lt;br /&gt;Select the empty entry for none.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1570"/>
+        <location filename="../Project.py" line="1634"/>
         <source>Start Django Project</source>
         <translation>Django Projesini Başlat</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1546"/>
+        <location filename="../Project.py" line="1610"/>
         <source>Django project created successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1570"/>
+        <location filename="../Project.py" line="1634"/>
         <source>Enter the name of the new Django project.</source>
         <translation>Yeni Django projesinin adını giriniz.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1598"/>
+        <location filename="../Project.py" line="1662"/>
         <source>Start Django Application</source>
         <translation>Django Uygulamasını Başlat</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1632"/>
+        <location filename="../Project.py" line="1696"/>
         <source>Django application created successfully.</source>
         <translation>Django uygulaması başarıyla oluşturuldu.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1715"/>
+        <location filename="../Project.py" line="1779"/>
         <source>Select Project</source>
         <translation>Projeyi Seç</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1715"/>
+        <location filename="../Project.py" line="1779"/>
         <source>Select the Django project to work with.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1749"/>
+        <location filename="../Project.py" line="1813"/>
         <source>None</source>
         <translation>Yok</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1754"/>
+        <location filename="../Project.py" line="1818"/>
         <source>&amp;Current Django project ({0})</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2852"/>
+        <location filename="../Project.py" line="3089"/>
         <source>Process Generation Error</source>
         <translation>İşlem Üretecinde Hata</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1828"/>
+        <location filename="../Project.py" line="1892"/>
         <source>The Django server could not be started.</source>
         <translation>Django sunucusu başlatılamadı.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1874"/>
+        <location filename="../Project.py" line="1938"/>
         <source>Could not start the web-browser for the url &quot;{0}&quot;.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2461"/>
+        <location filename="../Project.py" line="2698"/>
         <source>The Django process could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1915"/>
+        <location filename="../Project.py" line="1979"/>
         <source>Introspect Database</source>
         <translation>Veritabanı İnceleme</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1944"/>
+        <location filename="../Project.py" line="2008"/>
         <source>Flushing the database will destroy all data. Are you sure?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1956"/>
+        <location filename="../Project.py" line="2020"/>
         <source>Database tables flushed successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2018"/>
+        <location filename="../Project.py" line="2082"/>
         <source>SQL Files (*.sql)</source>
         <translation>SQL Dosyaları (*.sql)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2157"/>
+        <location filename="../Project.py" line="2394"/>
         <source>Database cleaned up successfully.</source>
         <translation>Veritabanı başarıyla temizlendi.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2230"/>
+        <location filename="../Project.py" line="2467"/>
         <source>Enter the names of the cache tables separated by spaces.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2245"/>
+        <location filename="../Project.py" line="2482"/>
         <source>Cache tables created successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2283"/>
+        <location filename="../Project.py" line="2520"/>
         <source>JSON Files (*.json)</source>
         <translation>JSON Dosyaları (*.json)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2285"/>
+        <location filename="../Project.py" line="2522"/>
         <source>XML Files (*.xml)</source>
         <translation>XML Dosyaları (*.xml)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2287"/>
+        <location filename="../Project.py" line="2524"/>
         <source>YAML Files (*.yaml)</source>
         <translation>YAML Dosyaları (*.yaml)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2390"/>
+        <location filename="../Project.py" line="2627"/>
         <source>The Django test server could not be started.</source>
         <translation>Django testsunucusu çalıştırılamadı.</translation>
     </message>
@@ -1103,110 +1209,110 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="926"/>
+        <location filename="../Project.py" line="990"/>
         <source>New template...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="935"/>
+        <location filename="../Project.py" line="999"/>
         <source>Update all catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="938"/>
+        <location filename="../Project.py" line="1002"/>
         <source>Update selected catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="949"/>
+        <location filename="../Project.py" line="1013"/>
         <source>Compile all catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="952"/>
+        <location filename="../Project.py" line="1016"/>
         <source>Compile selected catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2557"/>
+        <location filename="../Project.py" line="2794"/>
         <source>Initializing message catalog for &apos;{0}&apos;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2816"/>
+        <location filename="../Project.py" line="3053"/>
         <source>No current site selected or no site created yet. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2577"/>
+        <location filename="../Project.py" line="2814"/>
         <source>
 Message catalog initialized successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2689"/>
+        <location filename="../Project.py" line="2926"/>
         <source>Updating message catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2780"/>
+        <location filename="../Project.py" line="3017"/>
         <source>No locales detected. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2740"/>
+        <location filename="../Project.py" line="2977"/>
         <source>
 Message catalogs updated successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2806"/>
+        <location filename="../Project.py" line="3043"/>
         <source>Compiling message catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2823"/>
+        <location filename="../Project.py" line="3060"/>
         <source>
 Message catalogs compiled successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="942"/>
+        <location filename="../Project.py" line="1006"/>
         <source>Update all catalogs (with obsolete)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="945"/>
+        <location filename="../Project.py" line="1009"/>
         <source>Update selected catalogs (with obsolete)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1644"/>
+        <location filename="../Project.py" line="1708"/>
         <source>Start Global Django Application</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1644"/>
+        <location filename="../Project.py" line="1708"/>
         <source>Enter the name of the new global Django application.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1666"/>
+        <location filename="../Project.py" line="1730"/>
         <source>Start Local Django Application</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1666"/>
+        <location filename="../Project.py" line="1730"/>
         <source>Enter the name of the new local Django application.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2721"/>
+        <location filename="../Project.py" line="2958"/>
         <source>Updating message catalogs (keeping obsolete messages)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2420"/>
+        <location filename="../Project.py" line="2657"/>
         <source>Change Password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1246,7 +1352,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2476"/>
+        <location filename="../Project.py" line="2713"/>
         <source>Clear Sessions</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1266,52 +1372,52 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="852"/>
+        <location filename="../Project.py" line="916"/>
         <source>&amp;Authorization</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="869"/>
+        <location filename="../Project.py" line="933"/>
         <source>&amp;Session</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2420"/>
+        <location filename="../Project.py" line="2657"/>
         <source>Enter the name of the user:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2488"/>
+        <location filename="../Project.py" line="2725"/>
         <source>Expired sessions cleared successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1325"/>
+        <location filename="../Project.py" line="1389"/>
         <source>&lt;p&gt;Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Version:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;URL:&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;{1}&quot;&gt;{1}&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1615"/>
+        <location filename="../Project.py" line="1679"/>
         <source>&lt;p&gt;The &lt;b&gt;django-admin.py&lt;/b&gt; script is not in the path. Aborting...&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="911"/>
+        <location filename="../Project.py" line="975"/>
         <source>Open with {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2852"/>
+        <location filename="../Project.py" line="3089"/>
         <source>The translations editor process ({0}) could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1046"/>
+        <location filename="../Project.py" line="1110"/>
         <source>&lt;p&gt;The new form file &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;br&gt; Problem: {1}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2066"/>
+        <location filename="../Project.py" line="2130"/>
         <source>Drop Indexes</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1331,50 +1437,140 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="661"/>
+        <location filename="../Project.py" line="660"/>
         <source>Show Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="661"/>
+        <location filename="../Project.py" line="660"/>
         <source>&amp;Show Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="666"/>
+        <location filename="../Project.py" line="665"/>
         <source>Show a list of available migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="668"/>
+        <location filename="../Project.py" line="667"/>
         <source>&lt;b&gt;Show Migrations&lt;/b&gt;&lt;p&gt;This shows a list of available migrations of the Django project and their status.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="676"/>
+        <location filename="../Project.py" line="675"/>
         <source>Show Migrations Plan</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="676"/>
+        <location filename="../Project.py" line="675"/>
         <source>Show Migrations &amp;Plan</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="681"/>
+        <location filename="../Project.py" line="680"/>
         <source>Show a list with the migrations plan</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="683"/>
+        <location filename="../Project.py" line="682"/>
         <source>&lt;b&gt;Show Migrations Plan&lt;/b&gt;&lt;p&gt;This shows a list with the migrations plan of the Django project.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="795"/>
+        <location filename="../Project.py" line="853"/>
         <source>&amp;Migrations</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Project.py" line="690"/>
+        <source>Apply All Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="690"/>
+        <source>&amp;Apply All Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="695"/>
+        <source>Apply all available migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="697"/>
+        <source>&lt;b&gt;Apply All Migrations&lt;/b&gt;&lt;p&gt;This applies all migrations of the Django project.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2192"/>
+        <source>Apply Selected Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="709"/>
+        <source>Apply selected migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="711"/>
+        <source>&lt;b&gt;Apply Selected Migrations&lt;/b&gt;&lt;p&gt;This applies selected migrations of the Django project.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2251"/>
+        <source>Unapply Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="720"/>
+        <source>&amp;Unapply Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="725"/>
+        <source>Unapply all migrations for an app</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="727"/>
+        <source>&lt;b&gt;Unapply Migrations&lt;/b&gt;&lt;p&gt;This unapplies all migrations for an app of the Django project.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2328"/>
+        <source>Make Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="735"/>
+        <source>&amp;Make Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="740"/>
+        <source>Generate migrations for the project</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="742"/>
+        <source>&lt;b&gt;Make Migrations&lt;/b&gt;&lt;p&gt;This generates migrations for the Django project.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2245"/>
+        <source>No migrations available.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2217"/>
+        <source>Apply Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2251"/>
+        <source>Select an application:</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ProjectDjangoPlugin</name>
diff -r 0f95786f7868 -r 8a4ccc4f1359 ProjectDjango/icons/applied.png
Binary file ProjectDjango/icons/applied.png has changed

eric ide

mercurial