Added functionality to create an empty migration. release-5.0.7

Wed, 25 Oct 2017 19:58:37 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 25 Oct 2017 19:58:37 +0200
changeset 104
4cd211a73b3e
parent 103
226d0705880b
child 105
9c2cf3107372

Added functionality to create an empty migration.

ChangeLog file | annotate | diff | comparison | revisions
PluginProjectDjango.py file | annotate | diff | comparison | revisions
PluginProjectDjango.zip file | annotate | diff | comparison | revisions
ProjectDjango/DjangoMakeMigrationsDialog.py file | annotate | diff | comparison | revisions
ProjectDjango/DjangoMakeMigrationsDialog.ui file | annotate | diff | comparison | revisions
ProjectDjango/DjangoMigrationsListDialog.py file | annotate | diff | comparison | revisions
ProjectDjango/Documentation/source/Plugin_Project_Django.ProjectDjango.DjangoMakeMigrationsDialog.html file | annotate | diff | comparison | revisions
ProjectDjango/Documentation/source/Plugin_Project_Django.ProjectDjango.DjangoMigrationsListDialog.html file | annotate | diff | comparison | revisions
ProjectDjango/Documentation/source/Plugin_Project_Django.ProjectDjango.Project.html file | annotate | diff | comparison | revisions
ProjectDjango/Project.py 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
diff -r 226d0705880b -r 4cd211a73b3e ChangeLog
--- a/ChangeLog	Thu Apr 27 19:35:24 2017 +0200
+++ b/ChangeLog	Wed Oct 25 19:58:37 2017 +0200
@@ -1,5 +1,8 @@
 ChangeLog
 ---------
+Version 5.0.7:
+- added functionality to create an empty migration
+
 Version 5.0.6:
 - added functionality to enter data to be sent to the Django process
 
diff -r 226d0705880b -r 4cd211a73b3e PluginProjectDjango.py
--- a/PluginProjectDjango.py	Thu Apr 27 19:35:24 2017 +0200
+++ b/PluginProjectDjango.py	Wed Oct 25 19:58:37 2017 +0200
@@ -28,7 +28,7 @@
 author = "Detlev Offenbach <detlev@die-offenbachs.de>"
 autoactivate = True
 deactivateable = True
-version = "5.0.6"
+version = "5.0.7"
 className = "ProjectDjangoPlugin"
 packageName = "ProjectDjango"
 shortDescription = "Project support for Django projects."
diff -r 226d0705880b -r 4cd211a73b3e PluginProjectDjango.zip
Binary file PluginProjectDjango.zip has changed
diff -r 226d0705880b -r 4cd211a73b3e ProjectDjango/DjangoMakeMigrationsDialog.py
--- a/ProjectDjango/DjangoMakeMigrationsDialog.py	Thu Apr 27 19:35:24 2017 +0200
+++ b/ProjectDjango/DjangoMakeMigrationsDialog.py	Wed Oct 25 19:58:37 2017 +0200
@@ -36,12 +36,13 @@
         """
         Public method to get the data for the migration.
         
-        @return tuple containing the application names, a migration name
-            and the dry-run flag
-        @rtype tuple of two str and a bool
+        @return tuple containing the application names, a migration name,
+            the dry-run flag and a flag for an empty migration
+        @rtype tuple of (str, str, bool, bool)
         """
         return (
             self.applicationsComboBox.currentText(),
             self.nameEdit.text(),
             self.dryrunCheckBox.isChecked(),
+            self.emptyCheckBox.isChecked(),
         )
diff -r 226d0705880b -r 4cd211a73b3e ProjectDjango/DjangoMakeMigrationsDialog.ui
--- a/ProjectDjango/DjangoMakeMigrationsDialog.ui	Thu Apr 27 19:35:24 2017 +0200
+++ b/ProjectDjango/DjangoMakeMigrationsDialog.ui	Wed Oct 25 19:58:37 2017 +0200
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>500</width>
-    <height>140</height>
+    <height>168</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -55,6 +55,16 @@
     </widget>
    </item>
    <item row="2" column="0" colspan="2">
+    <widget class="QCheckBox" name="emptyCheckBox">
+     <property name="toolTip">
+      <string>Select to create empty migrations</string>
+     </property>
+     <property name="text">
+      <string>Create empty migrations</string>
+     </property>
+    </widget>
+   </item>
+   <item row="3" column="0" colspan="2">
     <widget class="QCheckBox" name="dryrunCheckBox">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
@@ -70,7 +80,7 @@
      </property>
     </widget>
    </item>
-   <item row="3" column="0" colspan="2">
+   <item row="4" column="0" colspan="2">
     <widget class="QDialogButtonBox" name="buttonBox">
      <property name="orientation">
       <enum>Qt::Horizontal</enum>
@@ -89,6 +99,12 @@
    <header>E5Gui/E5LineEdit.h</header>
   </customwidget>
  </customwidgets>
+ <tabstops>
+  <tabstop>applicationsComboBox</tabstop>
+  <tabstop>nameEdit</tabstop>
+  <tabstop>emptyCheckBox</tabstop>
+  <tabstop>dryrunCheckBox</tabstop>
+ </tabstops>
  <resources/>
  <connections>
   <connection>
diff -r 226d0705880b -r 4cd211a73b3e ProjectDjango/DjangoMigrationsListDialog.py
--- a/ProjectDjango/DjangoMigrationsListDialog.py	Thu Apr 27 19:35:24 2017 +0200
+++ b/ProjectDjango/DjangoMigrationsListDialog.py	Wed Oct 25 19:58:37 2017 +0200
@@ -305,6 +305,10 @@
                     self.tr("Make Migrations"),
                     self.__makeMigrations).setEnabled(len(selApps) > 0)
                 menu.addAction(
+                    self.tr("Make Empty Migrations"),
+                    lambda: self.__makeMigrations(empty=True))\
+                    .setEnabled(len(selApps) > 0)
+                menu.addAction(
                     self.tr("Make Migrations (dry-run)"),
                     lambda: self.__makeMigrations(dryRun=True))\
                     .setEnabled(len(selApps) > 0)
@@ -354,11 +358,13 @@
                 
                 self.on_refreshButton_clicked()
     
-    def __makeMigrations(self, dryRun=False):
+    def __makeMigrations(self, dryRun=False, empty=False):
         """
         Private slot to make migrations for the selected apps.
         
-        @param dryRun dlag indicating a dry-run
+        @param dryRun flag indicating a dry-run
+        @type bool
+        @param empty flag indicating an empty migration
         @type bool
         """
         apps = []
@@ -374,6 +380,6 @@
                         " use system supplied name):"),
                 QLineEdit.Normal)
             if ok:
-                self.__django.makeMigrations(apps, migration, dryRun)
+                self.__django.makeMigrations(apps, migration, dryRun, empty)
             
             self.on_refreshButton_clicked()
diff -r 226d0705880b -r 4cd211a73b3e ProjectDjango/Documentation/source/Plugin_Project_Django.ProjectDjango.DjangoMakeMigrationsDialog.html
--- a/ProjectDjango/Documentation/source/Plugin_Project_Django.ProjectDjango.DjangoMakeMigrationsDialog.html	Thu Apr 27 19:35:24 2017 +0200
+++ b/ProjectDjango/Documentation/source/Plugin_Project_Django.ProjectDjango.DjangoMakeMigrationsDialog.html	Wed Oct 25 19:58:37 2017 +0200
@@ -89,13 +89,13 @@
 </p><dl>
 <dt>Returns:</dt>
 <dd>
-tuple containing the application names, a migration name
-            and the dry-run flag
+tuple containing the application names, a migration name,
+            the dry-run flag and a flag for an empty migration
 </dd>
 </dl><dl>
 <dt>Return Type:</dt>
 <dd>
-tuple of two str and a bool
+tuple of (str, str, bool, bool)
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
diff -r 226d0705880b -r 4cd211a73b3e ProjectDjango/Documentation/source/Plugin_Project_Django.ProjectDjango.DjangoMigrationsListDialog.html
--- a/ProjectDjango/Documentation/source/Plugin_Project_Django.ProjectDjango.DjangoMigrationsListDialog.html	Thu Apr 27 19:35:24 2017 +0200
+++ b/ProjectDjango/Documentation/source/Plugin_Project_Django.ProjectDjango.DjangoMigrationsListDialog.html	Wed Oct 25 19:58:37 2017 +0200
@@ -164,13 +164,16 @@
         button.
 </p><a NAME="DjangoMigrationsListDialog.__makeMigrations" ID="DjangoMigrationsListDialog.__makeMigrations"></a>
 <h4>DjangoMigrationsListDialog.__makeMigrations</h4>
-<b>__makeMigrations</b>(<i>dryRun=False</i>)
+<b>__makeMigrations</b>(<i>dryRun=False, empty=False</i>)
 <p>
         Private slot to make migrations for the selected apps.
 </p><dl>
 <dt><i>dryRun</i> (bool)</dt>
 <dd>
-dlag indicating a dry-run
+flag indicating a dry-run
+</dd><dt><i>empty</i> (bool)</dt>
+<dd>
+flag indicating an empty migration
 </dd>
 </dl><a NAME="DjangoMigrationsListDialog.__procFinished" ID="DjangoMigrationsListDialog.__procFinished"></a>
 <h4>DjangoMigrationsListDialog.__procFinished</h4>
diff -r 226d0705880b -r 4cd211a73b3e ProjectDjango/Documentation/source/Plugin_Project_Django.ProjectDjango.Project.html
--- a/ProjectDjango/Documentation/source/Plugin_Project_Django.ProjectDjango.Project.html	Thu Apr 27 19:35:24 2017 +0200
+++ b/ProjectDjango/Documentation/source/Plugin_Project_Django.ProjectDjango.Project.html	Wed Oct 25 19:58:37 2017 +0200
@@ -1223,7 +1223,7 @@
 </dd>
 </dl><a NAME="Project.makeMigrations" ID="Project.makeMigrations"></a>
 <h4>Project.makeMigrations</h4>
-<b>makeMigrations</b>(<i>apps, migration=None, dryRun=False</i>)
+<b>makeMigrations</b>(<i>apps, migration=None, dryRun=False, empty=False</i>)
 <p>
         Public method to generate migrations.
 </p><dl>
@@ -1236,6 +1236,9 @@
 </dd><dt><i>dryRun</i> (bool)</dt>
 <dd>
 flag indicating a dry run
+</dd><dt><i>empty</i> (bool)</dt>
+<dd>
+flag indicating the creation of an empty migration
 </dd>
 </dl><a NAME="Project.newForm" ID="Project.newForm"></a>
 <h4>Project.newForm</h4>
diff -r 226d0705880b -r 4cd211a73b3e ProjectDjango/Project.py
--- a/ProjectDjango/Project.py	Thu Apr 27 19:35:24 2017 +0200
+++ b/ProjectDjango/Project.py	Wed Oct 25 19:58:37 2017 +0200
@@ -2421,13 +2421,13 @@
         from .DjangoMakeMigrationsDialog import DjangoMakeMigrationsDialog
         dlg = DjangoMakeMigrationsDialog(self.getRecentApplications())
         if dlg.exec_() == QDialog.Accepted:
-            apps, migration, dryRun = dlg.getData()
+            apps, migration, dryRun, empty = dlg.getData()
             if apps:
                 self.setMostRecentApplication(apps)
             apps = apps.split()
-            self.makeMigrations(apps, migration, dryRun)
+            self.makeMigrations(apps, migration, dryRun, empty)
     
-    def makeMigrations(self, apps, migration=None, dryRun=False):
+    def makeMigrations(self, apps, migration=None, dryRun=False, empty=False):
         """
         Public method to generate migrations.
         
@@ -2437,6 +2437,8 @@
         @type str
         @param dryRun flag indicating a dry run
         @type bool
+        @param empty flag indicating the creation of an empty migration
+        @type bool
         """
         title = self.tr("Make Migrations")
         
@@ -2454,6 +2456,8 @@
             args.append(migration.replace(" ", "_"))
         if dryRun:
             args.append("--dry-run")
+        if empty:
+            args.append("--empty")
         if apps:
             args += apps
         
diff -r 226d0705880b -r 4cd211a73b3e ProjectDjango/i18n/django_de.ts
--- a/ProjectDjango/i18n/django_de.ts	Thu Apr 27 19:35:24 2017 +0200
+++ b/ProjectDjango/i18n/django_de.ts	Wed Oct 25 19:58:37 2017 +0200
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0" language="de" sourcelanguage="">
+<!DOCTYPE TS>
+<TS version="2.1" language="de">
 <context>
     <name>DjangoCheckOptionsDialog</name>
     <message>
@@ -265,15 +266,25 @@
         <translation>Gibe einen Namen für die Migration ein</translation>
     </message>
     <message>
-        <location filename="../DjangoMakeMigrationsDialog.ui" line="66"/>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="76"/>
         <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"/>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="79"/>
         <source>Dry-Run only</source>
         <translation>nur Trockenlauf</translation>
     </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="60"/>
+        <source>Select to create empty migrations</source>
+        <translation>Auswählen, um leere Migrationen zu erzeugen</translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="63"/>
+        <source>Create empty migrations</source>
+        <translation>Erzeuge leere Migration</translation>
+    </message>
 </context>
 <context>
     <name>DjangoMigrationSelectionDialog</name>
@@ -361,7 +372,7 @@
         <translation>Alle Migrationen anwenden</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="314"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="318"/>
         <source>Apply Selected Migrations</source>
         <translation>Ausgewählte Migrationen anwenden</translation>
     </message>
@@ -371,20 +382,25 @@
         <translation>Migrationen rückgängig machen</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="372"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="378"/>
         <source>Make Migrations</source>
         <translation>Migrationen generieren</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="309"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="313"/>
         <source>Make Migrations (dry-run)</source>
         <translation>Migrationen generieren (Trockenlauf)</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="372"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="378"/>
         <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>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="309"/>
+        <source>Make Empty Migrations</source>
+        <translation>Leere Migration generieren</translation>
+    </message>
 </context>
 <context>
     <name>DjangoPage</name>
@@ -805,7 +821,7 @@
         <translation>keines</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3222"/>
+        <location filename="../Project.py" line="3226"/>
         <source>Process Generation Error</source>
         <translation>Fehler beim Prozessstart</translation>
     </message>
@@ -820,7 +836,7 @@
         <translation>Der Web-Browser konnt mit der URL &quot;{0}&quot; nicht gestartet werden.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2831"/>
+        <location filename="../Project.py" line="2835"/>
         <source>The Django process could not be started.</source>
         <translation>Der Django Prozess konnte nicht gestartet werden.</translation>
     </message>
@@ -830,7 +846,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="2529"/>
+        <location filename="../Project.py" line="2533"/>
         <source>Diff Settings</source>
         <translation>Settings Unterschiede</translation>
     </message>
@@ -890,7 +906,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="2585"/>
+        <location filename="../Project.py" line="2589"/>
         <source>Create Cache Tables</source>
         <translation>Erzeuge Cache Tabellen</translation>
     </message>
@@ -910,12 +926,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="2592"/>
+        <location filename="../Project.py" line="2596"/>
         <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="2607"/>
+        <location filename="../Project.py" line="2611"/>
         <source>Cache tables created successfully.</source>
         <translation>Cache Tabellen erfolgreich erzeugt.</translation>
     </message>
@@ -1140,7 +1156,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="2622"/>
+        <location filename="../Project.py" line="2626"/>
         <source>Dump Data</source>
         <translation>Daten sichern</translation>
     </message>
@@ -1170,22 +1186,22 @@
         <translation>SQL Dateien (*.sql)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2645"/>
+        <location filename="../Project.py" line="2649"/>
         <source>JSON Files (*.json)</source>
         <translation>JSON Dateien (*.json)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2647"/>
+        <location filename="../Project.py" line="2651"/>
         <source>XML Files (*.xml)</source>
         <translation>XML Dateien (*.xml)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2649"/>
+        <location filename="../Project.py" line="2653"/>
         <source>YAML Files (*.yaml)</source>
         <translation>YAML Dateien (*.yaml)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2661"/>
+        <location filename="../Project.py" line="2665"/>
         <source>Load Data</source>
         <translation>Daten laden</translation>
     </message>
@@ -1245,7 +1261,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="2758"/>
+        <location filename="../Project.py" line="2762"/>
         <source>The Django test server could not be started.</source>
         <translation>Der Django Testserver konnte nicht gestartet werden.</translation>
     </message>
@@ -1295,46 +1311,46 @@
         <translation>Ausgewählte Kataloge übersetzen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2927"/>
+        <location filename="../Project.py" line="2931"/>
         <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="3186"/>
+        <location filename="../Project.py" line="3190"/>
         <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="2947"/>
+        <location filename="../Project.py" line="2951"/>
         <source>
 Message catalog initialized successfully.</source>
         <translation>
 Textkatalog erfolgreich initialisiert.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3059"/>
+        <location filename="../Project.py" line="3063"/>
         <source>Updating message catalogs</source>
         <translation>Aktualisiere Textkataloge</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3150"/>
+        <location filename="../Project.py" line="3154"/>
         <source>No locales detected. Aborting...</source>
         <translation>Keine Sprachen erkannt. Abbruch...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3110"/>
+        <location filename="../Project.py" line="3114"/>
         <source>
 Message catalogs updated successfully.</source>
         <translation>
 Textkataloge erfolgreich aktualisiert.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3176"/>
+        <location filename="../Project.py" line="3180"/>
         <source>Compiling message catalogs</source>
         <translation>Übersetze Textkataloge</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3193"/>
+        <location filename="../Project.py" line="3197"/>
         <source>
 Message catalogs compiled successfully.</source>
         <translation>
@@ -1371,12 +1387,12 @@
         <translation>Gib den Namen der neuen lokalen Django Anwendung ein.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3091"/>
+        <location filename="../Project.py" line="3095"/>
         <source>Updating message catalogs (keeping obsolete messages)</source>
         <translation>Aktualisiere Textkataloge (veraltete Texte behalten)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2788"/>
+        <location filename="../Project.py" line="2792"/>
         <source>Change Password</source>
         <translation>Kennwort ändern</translation>
     </message>
@@ -1416,7 +1432,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="2846"/>
+        <location filename="../Project.py" line="2850"/>
         <source>Clear Sessions</source>
         <translation>Sessions löschen</translation>
     </message>
@@ -1446,12 +1462,12 @@
         <translation>&amp;Session</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2788"/>
+        <location filename="../Project.py" line="2792"/>
         <source>Enter the name of the user:</source>
         <translation>Gib den Namen des Nutzers ein:</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2858"/>
+        <location filename="../Project.py" line="2862"/>
         <source>Expired sessions cleared successfully.</source>
         <translation>Abgelaufene Sessions erfolgreich gelöscht.</translation>
     </message>
@@ -1471,7 +1487,7 @@
         <translation>Mit {0} öffnen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3222"/>
+        <location filename="../Project.py" line="3226"/>
         <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>
@@ -1601,7 +1617,7 @@
         <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="2454"/>
+        <location filename="../Project.py" line="2456"/>
         <source>Make Migrations</source>
         <translation>Migrationen generieren</translation>
     </message>
@@ -1621,7 +1637,7 @@
         <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="2484"/>
+        <location filename="../Project.py" line="2488"/>
         <source>No migrations available.</source>
         <translation>Keine Migrationen verfügbar.</translation>
     </message>
@@ -1636,7 +1652,7 @@
         <translation>Wähle eine Anwendung aus:</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2497"/>
+        <location filename="../Project.py" line="2501"/>
         <source>Squash Migrations</source>
         <translation>Migrationen kürzen</translation>
     </message>
@@ -1701,7 +1717,7 @@
         <translation>SQL Migrate</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3267"/>
+        <location filename="../Project.py" line="3271"/>
         <source>Check Project</source>
         <translation>Projekt prüfen</translation>
     </message>
diff -r 226d0705880b -r 4cd211a73b3e ProjectDjango/i18n/django_empty.ts
--- a/ProjectDjango/i18n/django_empty.ts	Thu Apr 27 19:35:24 2017 +0200
+++ b/ProjectDjango/i18n/django_empty.ts	Wed Oct 25 19:58:37 2017 +0200
@@ -265,15 +265,25 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMakeMigrationsDialog.ui" line="66"/>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="76"/>
         <source>Select to perform a dry-run</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMakeMigrationsDialog.ui" line="69"/>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="79"/>
         <source>Dry-Run only</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="60"/>
+        <source>Select to create empty migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="63"/>
+        <source>Create empty migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>DjangoMigrationSelectionDialog</name>
@@ -361,7 +371,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="314"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="318"/>
         <source>Apply Selected Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -371,18 +381,23 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="372"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="378"/>
         <source>Make Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="313"/>
+        <source>Make Migrations (dry-run)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="378"/>
+        <source>Enter a name for the migrations (leave empty to use system supplied name):</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../DjangoMigrationsListDialog.py" line="309"/>
-        <source>Make Migrations (dry-run)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="372"/>
-        <source>Enter a name for the migrations (leave empty to use system supplied name):</source>
+        <source>Make Empty Migrations</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -710,7 +725,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2585"/>
+        <location filename="../Project.py" line="2589"/>
         <source>Create Cache Tables</source>
         <translation type="unfinished"></translation>
     </message>
@@ -990,7 +1005,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2529"/>
+        <location filename="../Project.py" line="2533"/>
         <source>Diff Settings</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1030,7 +1045,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2622"/>
+        <location filename="../Project.py" line="2626"/>
         <source>Dump Data</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1050,7 +1065,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2661"/>
+        <location filename="../Project.py" line="2665"/>
         <source>Load Data</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1110,7 +1125,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2788"/>
+        <location filename="../Project.py" line="2792"/>
         <source>Change Password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1150,7 +1165,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2846"/>
+        <location filename="../Project.py" line="2850"/>
         <source>Clear Sessions</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1410,7 +1425,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3222"/>
+        <location filename="../Project.py" line="3226"/>
         <source>Process Generation Error</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1425,7 +1440,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2831"/>
+        <location filename="../Project.py" line="2835"/>
         <source>The Django process could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1450,95 +1465,95 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2592"/>
+        <location filename="../Project.py" line="2596"/>
         <source>Enter the names of the cache tables separated by spaces.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2607"/>
+        <location filename="../Project.py" line="2611"/>
         <source>Cache tables created successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2645"/>
+        <location filename="../Project.py" line="2649"/>
         <source>JSON Files (*.json)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2647"/>
+        <location filename="../Project.py" line="2651"/>
         <source>XML Files (*.xml)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2649"/>
+        <location filename="../Project.py" line="2653"/>
         <source>YAML Files (*.yaml)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2758"/>
+        <location filename="../Project.py" line="2762"/>
         <source>The Django test server could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2788"/>
+        <location filename="../Project.py" line="2792"/>
         <source>Enter the name of the user:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2858"/>
+        <location filename="../Project.py" line="2862"/>
         <source>Expired sessions cleared successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2927"/>
+        <location filename="../Project.py" line="2931"/>
         <source>Initializing message catalog for &apos;{0}&apos;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3186"/>
+        <location filename="../Project.py" line="3190"/>
         <source>No current site selected or no site created yet. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2947"/>
+        <location filename="../Project.py" line="2951"/>
         <source>
 Message catalog initialized successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3059"/>
+        <location filename="../Project.py" line="3063"/>
         <source>Updating message catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3150"/>
+        <location filename="../Project.py" line="3154"/>
         <source>No locales detected. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3110"/>
+        <location filename="../Project.py" line="3114"/>
         <source>
 Message catalogs updated successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3091"/>
+        <location filename="../Project.py" line="3095"/>
         <source>Updating message catalogs (keeping obsolete messages)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3176"/>
+        <location filename="../Project.py" line="3180"/>
         <source>Compiling message catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3193"/>
+        <location filename="../Project.py" line="3197"/>
         <source>
 Message catalogs compiled successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3222"/>
+        <location filename="../Project.py" line="3226"/>
         <source>The translations editor process ({0}) could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1598,7 +1613,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2454"/>
+        <location filename="../Project.py" line="2456"/>
         <source>Make Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1618,7 +1633,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2484"/>
+        <location filename="../Project.py" line="2488"/>
         <source>No migrations available.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1633,7 +1648,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2497"/>
+        <location filename="../Project.py" line="2501"/>
         <source>Squash Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1698,7 +1713,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3267"/>
+        <location filename="../Project.py" line="3271"/>
         <source>Check Project</source>
         <translation type="unfinished"></translation>
     </message>
diff -r 226d0705880b -r 4cd211a73b3e ProjectDjango/i18n/django_en.ts
--- a/ProjectDjango/i18n/django_en.ts	Thu Apr 27 19:35:24 2017 +0200
+++ b/ProjectDjango/i18n/django_en.ts	Wed Oct 25 19:58:37 2017 +0200
@@ -265,15 +265,25 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMakeMigrationsDialog.ui" line="66"/>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="76"/>
         <source>Select to perform a dry-run</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMakeMigrationsDialog.ui" line="69"/>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="79"/>
         <source>Dry-Run only</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="60"/>
+        <source>Select to create empty migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="63"/>
+        <source>Create empty migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>DjangoMigrationSelectionDialog</name>
@@ -361,7 +371,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="314"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="318"/>
         <source>Apply Selected Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -371,18 +381,23 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="372"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="378"/>
         <source>Make Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="313"/>
+        <source>Make Migrations (dry-run)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="378"/>
+        <source>Enter a name for the migrations (leave empty to use system supplied name):</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../DjangoMigrationsListDialog.py" line="309"/>
-        <source>Make Migrations (dry-run)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="372"/>
-        <source>Enter a name for the migrations (leave empty to use system supplied name):</source>
+        <source>Make Empty Migrations</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -710,7 +725,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2585"/>
+        <location filename="../Project.py" line="2589"/>
         <source>Create Cache Tables</source>
         <translation type="unfinished"></translation>
     </message>
@@ -970,7 +985,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2529"/>
+        <location filename="../Project.py" line="2533"/>
         <source>Diff Settings</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1010,7 +1025,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2622"/>
+        <location filename="../Project.py" line="2626"/>
         <source>Dump Data</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1030,7 +1045,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2661"/>
+        <location filename="../Project.py" line="2665"/>
         <source>Load Data</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1255,7 +1270,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3222"/>
+        <location filename="../Project.py" line="3226"/>
         <source>Process Generation Error</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1270,7 +1285,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2831"/>
+        <location filename="../Project.py" line="2835"/>
         <source>The Django process could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1295,85 +1310,85 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2592"/>
+        <location filename="../Project.py" line="2596"/>
         <source>Enter the names of the cache tables separated by spaces.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2607"/>
+        <location filename="../Project.py" line="2611"/>
         <source>Cache tables created successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2645"/>
-        <source>JSON Files (*.json)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Project.py" line="2647"/>
-        <source>XML Files (*.xml)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../Project.py" line="2649"/>
+        <source>JSON Files (*.json)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2651"/>
+        <source>XML Files (*.xml)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="2653"/>
         <source>YAML Files (*.yaml)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2758"/>
+        <location filename="../Project.py" line="2762"/>
         <source>The Django test server could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2927"/>
+        <location filename="../Project.py" line="2931"/>
         <source>Initializing message catalog for &apos;{0}&apos;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3186"/>
+        <location filename="../Project.py" line="3190"/>
         <source>No current site selected or no site created yet. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2947"/>
+        <location filename="../Project.py" line="2951"/>
         <source>
 Message catalog initialized successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3059"/>
+        <location filename="../Project.py" line="3063"/>
         <source>Updating message catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3150"/>
+        <location filename="../Project.py" line="3154"/>
         <source>No locales detected. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3110"/>
+        <location filename="../Project.py" line="3114"/>
         <source>
 Message catalogs updated successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3091"/>
+        <location filename="../Project.py" line="3095"/>
         <source>Updating message catalogs (keeping obsolete messages)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3176"/>
+        <location filename="../Project.py" line="3180"/>
         <source>Compiling message catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3193"/>
+        <location filename="../Project.py" line="3197"/>
         <source>
 Message catalogs compiled successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2788"/>
+        <location filename="../Project.py" line="2792"/>
         <source>Change Password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1413,7 +1428,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2846"/>
+        <location filename="../Project.py" line="2850"/>
         <source>Clear Sessions</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1443,12 +1458,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2788"/>
+        <location filename="../Project.py" line="2792"/>
         <source>Enter the name of the user:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2858"/>
+        <location filename="../Project.py" line="2862"/>
         <source>Expired sessions cleared successfully.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1468,7 +1483,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3222"/>
+        <location filename="../Project.py" line="3226"/>
         <source>The translations editor process ({0}) could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1598,7 +1613,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2454"/>
+        <location filename="../Project.py" line="2456"/>
         <source>Make Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1618,7 +1633,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2484"/>
+        <location filename="../Project.py" line="2488"/>
         <source>No migrations available.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1633,7 +1648,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2497"/>
+        <location filename="../Project.py" line="2501"/>
         <source>Squash Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1698,7 +1713,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3267"/>
+        <location filename="../Project.py" line="3271"/>
         <source>Check Project</source>
         <translation type="unfinished"></translation>
     </message>
diff -r 226d0705880b -r 4cd211a73b3e ProjectDjango/i18n/django_es.ts
--- a/ProjectDjango/i18n/django_es.ts	Thu Apr 27 19:35:24 2017 +0200
+++ b/ProjectDjango/i18n/django_es.ts	Wed Oct 25 19:58:37 2017 +0200
@@ -265,15 +265,25 @@
         <translation>Introducir un nombre para la migración</translation>
     </message>
     <message>
-        <location filename="../DjangoMakeMigrationsDialog.ui" line="66"/>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="76"/>
         <source>Select to perform a dry-run</source>
         <translation>Seleccionar para ejecutar un &quot;dry-run&quot;</translation>
     </message>
     <message>
-        <location filename="../DjangoMakeMigrationsDialog.ui" line="69"/>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="79"/>
         <source>Dry-Run only</source>
         <translation>Solo &quot;Dry-Run&quot;</translation>
     </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="60"/>
+        <source>Select to create empty migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="63"/>
+        <source>Create empty migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>DjangoMigrationSelectionDialog</name>
@@ -361,7 +371,7 @@
         <translation>Aplicar Todas las Migraciones</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="314"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="318"/>
         <source>Apply Selected Migrations</source>
         <translation>Aplicar Migraciones Seleccionadas</translation>
     </message>
@@ -371,20 +381,25 @@
         <translation>Deshacer Aplicar Migraciones</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="372"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="378"/>
         <source>Make Migrations</source>
         <translation>Hacer Migraciones</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="309"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="313"/>
         <source>Make Migrations (dry-run)</source>
         <translation>Hacer Migraciones (&quot;dry-run&quot;)</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="372"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="378"/>
         <source>Enter a name for the migrations (leave empty to use system supplied name):</source>
         <translation>Introducir un nombre para las migraciones (dejar en blanco para usar un nombre proporcionado por el sistema):</translation>
     </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="309"/>
+        <source>Make Empty Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>DjangoPage</name>
@@ -831,7 +846,7 @@
         <translation>Ninguno</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3222"/>
+        <location filename="../Project.py" line="3226"/>
         <source>Process Generation Error</source>
         <translation>Error de Generación de Proceso</translation>
     </message>
@@ -846,7 +861,7 @@
         <translation>No se ha podido iniciar el navegador web para la url &quot;{0}&quot;.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2831"/>
+        <location filename="../Project.py" line="2835"/>
         <source>The Django process could not be started.</source>
         <translation>No se ha podido iniciar el proceso Django.</translation>
     </message>
@@ -856,7 +871,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="2529"/>
+        <location filename="../Project.py" line="2533"/>
         <source>Diff Settings</source>
         <translation>Configuración de Diff</translation>
     </message>
@@ -916,7 +931,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="2585"/>
+        <location filename="../Project.py" line="2589"/>
         <source>Create Cache Tables</source>
         <translation>Crear Tablas de Caché</translation>
     </message>
@@ -936,12 +951,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="2592"/>
+        <location filename="../Project.py" line="2596"/>
         <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="2607"/>
+        <location filename="../Project.py" line="2611"/>
         <source>Cache tables created successfully.</source>
         <translation>Tablas de caché creadas con éxito.</translation>
     </message>
@@ -1166,7 +1181,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="2622"/>
+        <location filename="../Project.py" line="2626"/>
         <source>Dump Data</source>
         <translation>Volcado de Datos</translation>
     </message>
@@ -1196,22 +1211,22 @@
         <translation>Archivos SQL (*.sql)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2645"/>
+        <location filename="../Project.py" line="2649"/>
         <source>JSON Files (*.json)</source>
         <translation>Archivos JSON (*.json)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2647"/>
+        <location filename="../Project.py" line="2651"/>
         <source>XML Files (*.xml)</source>
         <translation>Archivos XML (*.xml)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2649"/>
+        <location filename="../Project.py" line="2653"/>
         <source>YAML Files (*.yaml)</source>
         <translation>Archivos YAML (*.yaml)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2661"/>
+        <location filename="../Project.py" line="2665"/>
         <source>Load Data</source>
         <translation>Cargar Datos</translation>
     </message>
@@ -1271,7 +1286,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="2758"/>
+        <location filename="../Project.py" line="2762"/>
         <source>The Django test server could not be started.</source>
         <translation>No se ha podido iniciar el servidor de tests Django.</translation>
     </message>
@@ -1321,45 +1336,45 @@
         <translation>Compilar los catálogos seleccionados</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2927"/>
+        <location filename="../Project.py" line="2931"/>
         <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="3186"/>
+        <location filename="../Project.py" line="3190"/>
         <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="2947"/>
+        <location filename="../Project.py" line="2951"/>
         <source>
 Message catalog initialized successfully.</source>
         <translation>Catálogo de mensajes iniciado con éxito.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3059"/>
+        <location filename="../Project.py" line="3063"/>
         <source>Updating message catalogs</source>
         <translation>Actualizando catálogos de mensajes</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3150"/>
+        <location filename="../Project.py" line="3154"/>
         <source>No locales detected. Aborting...</source>
         <translation>No se ha detectado ningún idioma. Abortando...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3110"/>
+        <location filename="../Project.py" line="3114"/>
         <source>
 Message catalogs updated successfully.</source>
         <translation>
 Catálogos de mensajes actualizados con éxito.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3176"/>
+        <location filename="../Project.py" line="3180"/>
         <source>Compiling message catalogs</source>
         <translation>Compilando catálogos de mensajes</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3193"/>
+        <location filename="../Project.py" line="3197"/>
         <source>
 Message catalogs compiled successfully.</source>
         <translation>
@@ -1396,12 +1411,12 @@
         <translation>Introducir el nombre de la nueva aplicación local Django.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3091"/>
+        <location filename="../Project.py" line="3095"/>
         <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="2788"/>
+        <location filename="../Project.py" line="2792"/>
         <source>Change Password</source>
         <translation>Cambiar Contraseña</translation>
     </message>
@@ -1441,7 +1456,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="2846"/>
+        <location filename="../Project.py" line="2850"/>
         <source>Clear Sessions</source>
         <translation>Limpiar Sesiones</translation>
     </message>
@@ -1471,12 +1486,12 @@
         <translation>&amp;Sesión</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2788"/>
+        <location filename="../Project.py" line="2792"/>
         <source>Enter the name of the user:</source>
         <translation>Introducir el nombre del usuario:</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2858"/>
+        <location filename="../Project.py" line="2862"/>
         <source>Expired sessions cleared successfully.</source>
         <translation>Sesiones expiradas limpiadas con éxito.</translation>
     </message>
@@ -1496,7 +1511,7 @@
         <translation>Abrir con {0}</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3222"/>
+        <location filename="../Project.py" line="3226"/>
         <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>
@@ -1626,7 +1641,7 @@
         <translation>&lt;b&gt;Deshacer Aplicar Migraciones&lt;/b&gt;&lt;p&gt;Deshace aplicar todas las migraciones para una app del proyecto Django.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2454"/>
+        <location filename="../Project.py" line="2456"/>
         <source>Make Migrations</source>
         <translation>Hacer Migraciones</translation>
     </message>
@@ -1646,7 +1661,7 @@
         <translation>&lt;b&gt;Hacer Migraciones&lt;/b&gt;&lt;p&gt;Genera las migraciones para el proyecto Django.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2484"/>
+        <location filename="../Project.py" line="2488"/>
         <source>No migrations available.</source>
         <translation>No hay migraciones disponibles.</translation>
     </message>
@@ -1661,7 +1676,7 @@
         <translation>Seleccionar una aplicación:</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2497"/>
+        <location filename="../Project.py" line="2501"/>
         <source>Squash Migrations</source>
         <translation>Hacer &quot;Squash&quot; de Migraciones</translation>
     </message>
@@ -1726,7 +1741,7 @@
         <translation>SQL Migrate</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3267"/>
+        <location filename="../Project.py" line="3271"/>
         <source>Check Project</source>
         <translation>Comprobar Proyecto</translation>
     </message>
diff -r 226d0705880b -r 4cd211a73b3e ProjectDjango/i18n/django_ru.ts
--- a/ProjectDjango/i18n/django_ru.ts	Thu Apr 27 19:35:24 2017 +0200
+++ b/ProjectDjango/i18n/django_ru.ts	Wed Oct 25 19:58:37 2017 +0200
@@ -265,15 +265,25 @@
         <translation>Задайте имя для миграции</translation>
     </message>
     <message>
-        <location filename="../DjangoMakeMigrationsDialog.ui" line="66"/>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="76"/>
         <source>Select to perform a dry-run</source>
         <translation>Разрешить выполнение dry-run (сухой прогон)</translation>
     </message>
     <message>
-        <location filename="../DjangoMakeMigrationsDialog.ui" line="69"/>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="79"/>
         <source>Dry-Run only</source>
         <translation>Только Dry-Run</translation>
     </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="60"/>
+        <source>Select to create empty migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="63"/>
+        <source>Create empty migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>DjangoMigrationSelectionDialog</name>
@@ -361,7 +371,7 @@
         <translation>Применить все миграции</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="314"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="318"/>
         <source>Apply Selected Migrations</source>
         <translation>Применить выбранные миграции</translation>
     </message>
@@ -371,20 +381,25 @@
         <translation>Откатить миграции</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="372"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="378"/>
         <source>Make Migrations</source>
         <translation>Создать миграции</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="309"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="313"/>
         <source>Make Migrations (dry-run)</source>
         <translation>Создать миграции (dry-run)</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="372"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="378"/>
         <source>Enter a name for the migrations (leave empty to use system supplied name):</source>
         <translation>Задайте имя миграции (оставить поле пустым для использования имени, поддерживаемого системой):</translation>
     </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="309"/>
+        <source>Make Empty Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>DjangoPage</name>
@@ -805,7 +820,7 @@
         <translation>none</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3222"/>
+        <location filename="../Project.py" line="3226"/>
         <source>Process Generation Error</source>
         <translation>Ошибка при запуске процесса</translation>
     </message>
@@ -820,7 +835,7 @@
         <translation>Невозможно открыть web-браузер с адресом &quot;{0}&quot;.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2831"/>
+        <location filename="../Project.py" line="2835"/>
         <source>The Django process could not be started.</source>
         <translation>Невозможно запустить Django процесс.</translation>
     </message>
@@ -830,7 +845,7 @@
         <translation>&lt;b&gt;Текущий проект&lt;/b&gt;&lt;p&gt;Выберите текущий проект. Используется в мультипроекте Django проектов для переключения между ними.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2529"/>
+        <location filename="../Project.py" line="2533"/>
         <source>Diff Settings</source>
         <translation>Отличие текущих параметров от параметров настройки Django по умолчанию</translation>
     </message>
@@ -890,7 +905,7 @@
         <translation>&lt;b&gt;Запуск консоли Python&lt;/b&gt;&lt;p&gt;Запуск интерактивного интерпретатора Python.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2585"/>
+        <location filename="../Project.py" line="2589"/>
         <source>Create Cache Tables</source>
         <translation>Создание кэша таблиц</translation>
     </message>
@@ -910,12 +925,12 @@
         <translation>&lt;b&gt;Создание кэша таблиц&lt;/b&gt;&lt;p&gt;Для создания таблиц необходимо использовать  SQL кэш бэкенд.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2592"/>
+        <location filename="../Project.py" line="2596"/>
         <source>Enter the names of the cache tables separated by spaces.</source>
         <translation>Введите имена таблиц кэша, разделенных пробелами.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2607"/>
+        <location filename="../Project.py" line="2611"/>
         <source>Cache tables created successfully.</source>
         <translation>Кэш таблиц создан успешно.</translation>
     </message>
@@ -1140,7 +1155,7 @@
         <translation>&lt;b&gt;Сброс цепочки&lt;/b&gt;&lt;p&gt;Вывод SQL операторов для сброса последовательности для одного или нескольких приложений.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2622"/>
+        <location filename="../Project.py" line="2626"/>
         <source>Dump Data</source>
         <translation>Выводит текущие данные из базы данных</translation>
     </message>
@@ -1170,22 +1185,22 @@
         <translation>SQL Files (*.sql)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2645"/>
+        <location filename="../Project.py" line="2649"/>
         <source>JSON Files (*.json)</source>
         <translation>JSON Files (*.json)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2647"/>
+        <location filename="../Project.py" line="2651"/>
         <source>XML Files (*.xml)</source>
         <translation>XML Files (*.xml)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2649"/>
+        <location filename="../Project.py" line="2653"/>
         <source>YAML Files (*.yaml)</source>
         <translation>YAML Files (*.yaml)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2661"/>
+        <location filename="../Project.py" line="2665"/>
         <source>Load Data</source>
         <translation>Загрузка данных в базу данных из файлов оснастки</translation>
     </message>
@@ -1245,7 +1260,7 @@
         <translation>&lt;b&gt;Запуск сервера тестов&lt;/b&gt;&lt;p&gt;Запуск сервера разработки с данными из набора оснастки.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2758"/>
+        <location filename="../Project.py" line="2762"/>
         <source>The Django test server could not be started.</source>
         <translation>Невозможно запустить Django сервер тестов.</translation>
     </message>
@@ -1295,39 +1310,39 @@
         <translation>Компиляция выбранных каталогов</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2927"/>
+        <location filename="../Project.py" line="2931"/>
         <source>Initializing message catalog for &apos;{0}&apos;</source>
         <translation>Инициализация каталога сообщений для &apos;{0}&apos;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3186"/>
+        <location filename="../Project.py" line="3190"/>
         <source>No current site selected or no site created yet. Aborting...</source>
         <translation>Текущий сайт не выбран или еще не создан. Прерывание выполнения...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3059"/>
+        <location filename="../Project.py" line="3063"/>
         <source>Updating message catalogs</source>
         <translation>Обновление каталогов сообщений</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3150"/>
+        <location filename="../Project.py" line="3154"/>
         <source>No locales detected. Aborting...</source>
         <translation>Локали не найдены. Прерывание выполнения...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3110"/>
+        <location filename="../Project.py" line="3114"/>
         <source>
 Message catalogs updated successfully.</source>
         <translation>
 Каталоги сообщений успешно обновлены.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3176"/>
+        <location filename="../Project.py" line="3180"/>
         <source>Compiling message catalogs</source>
         <translation>Компиляция каталогов сообщений</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3193"/>
+        <location filename="../Project.py" line="3197"/>
         <source>
 Message catalogs compiled successfully.</source>
         <translation>Каталоги сообщений успешно компилированы.</translation>
@@ -1363,12 +1378,12 @@
         <translation>Введите имя нового Django local приложения. </translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3091"/>
+        <location filename="../Project.py" line="3095"/>
         <source>Updating message catalogs (keeping obsolete messages)</source>
         <translation>Обновление каталогов сообщений (с сохранением устаревших сообщений)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2788"/>
+        <location filename="../Project.py" line="2792"/>
         <source>Change Password</source>
         <translation>Смена пароля</translation>
     </message>
@@ -1408,7 +1423,7 @@
         <translation>&lt;b&gt;Создание суперпользователя&lt;/b&gt;&lt;p&gt;Создание аккаунта суперпользователя для Django проекта.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2846"/>
+        <location filename="../Project.py" line="2850"/>
         <source>Clear Sessions</source>
         <translation>Очистка сессии</translation>
     </message>
@@ -1438,12 +1453,12 @@
         <translation>&amp;Сессия</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2788"/>
+        <location filename="../Project.py" line="2792"/>
         <source>Enter the name of the user:</source>
         <translation>Введите имя пользователя:</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2858"/>
+        <location filename="../Project.py" line="2862"/>
         <source>Expired sessions cleared successfully.</source>
         <translation>Истекшая сессия успешно очищена.</translation>
     </message>
@@ -1463,7 +1478,7 @@
         <translation>Открыть с помощью {0}</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3222"/>
+        <location filename="../Project.py" line="3226"/>
         <source>The translations editor process ({0}) could not be started.</source>
         <translation>Невозможен запуск редактора переводов ({0}).</translation>
     </message>
@@ -1473,7 +1488,7 @@
         <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="2947"/>
+        <location filename="../Project.py" line="2951"/>
         <source>
 Message catalog initialized successfully.</source>
         <translation>
@@ -1600,7 +1615,7 @@
         <translation>&lt;b&gt;Откатить миграции&lt;/b&gt;&lt;p&gt;Откат всех миграций для приложений Django проекта.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2454"/>
+        <location filename="../Project.py" line="2456"/>
         <source>Make Migrations</source>
         <translation>Создать миграции</translation>
     </message>
@@ -1620,7 +1635,7 @@
         <translation>&lt;b&gt;Создать миграции&lt;/b&gt;&lt;p&gt;Создание миграций для Django прокта.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2484"/>
+        <location filename="../Project.py" line="2488"/>
         <source>No migrations available.</source>
         <translation>Нет доступных миграций.</translation>
     </message>
@@ -1635,7 +1650,7 @@
         <translation>Выберите приложение:</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2497"/>
+        <location filename="../Project.py" line="2501"/>
         <source>Squash Migrations</source>
         <translation>Объединить миграции</translation>
     </message>
@@ -1700,7 +1715,7 @@
         <translation>SQL миграции</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3267"/>
+        <location filename="../Project.py" line="3271"/>
         <source>Check Project</source>
         <translation>Проверить проект</translation>
     </message>
diff -r 226d0705880b -r 4cd211a73b3e ProjectDjango/i18n/django_tr.ts
--- a/ProjectDjango/i18n/django_tr.ts	Thu Apr 27 19:35:24 2017 +0200
+++ b/ProjectDjango/i18n/django_tr.ts	Wed Oct 25 19:58:37 2017 +0200
@@ -265,15 +265,25 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMakeMigrationsDialog.ui" line="66"/>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="76"/>
         <source>Select to perform a dry-run</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMakeMigrationsDialog.ui" line="69"/>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="79"/>
         <source>Dry-Run only</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="60"/>
+        <source>Select to create empty migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMakeMigrationsDialog.ui" line="63"/>
+        <source>Create empty migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>DjangoMigrationSelectionDialog</name>
@@ -361,7 +371,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="314"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="318"/>
         <source>Apply Selected Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -371,18 +381,23 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="372"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="378"/>
         <source>Make Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="313"/>
+        <source>Make Migrations (dry-run)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoMigrationsListDialog.py" line="378"/>
+        <source>Enter a name for the migrations (leave empty to use system supplied name):</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../DjangoMigrationsListDialog.py" line="309"/>
-        <source>Make Migrations (dry-run)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="372"/>
-        <source>Enter a name for the migrations (leave empty to use system supplied name):</source>
+        <source>Make Empty Migrations</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -715,7 +730,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2585"/>
+        <location filename="../Project.py" line="2589"/>
         <source>Create Cache Tables</source>
         <translation type="unfinished">Gizli Tabloları Oluştur</translation>
     </message>
@@ -970,7 +985,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2529"/>
+        <location filename="../Project.py" line="2533"/>
         <source>Diff Settings</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1010,7 +1025,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2622"/>
+        <location filename="../Project.py" line="2626"/>
         <source>Dump Data</source>
         <translation>Boş Veri</translation>
     </message>
@@ -1030,7 +1045,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2661"/>
+        <location filename="../Project.py" line="2665"/>
         <source>Load Data</source>
         <translation>Veriyi Yükle</translation>
     </message>
@@ -1200,7 +1215,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3222"/>
+        <location filename="../Project.py" line="3226"/>
         <source>Process Generation Error</source>
         <translation>İşlem Üretecinde Hata</translation>
     </message>
@@ -1215,7 +1230,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2831"/>
+        <location filename="../Project.py" line="2835"/>
         <source>The Django process could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1240,32 +1255,32 @@
         <translation>SQL Dosyaları (*.sql)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2592"/>
+        <location filename="../Project.py" line="2596"/>
         <source>Enter the names of the cache tables separated by spaces.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2607"/>
+        <location filename="../Project.py" line="2611"/>
         <source>Cache tables created successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2645"/>
+        <location filename="../Project.py" line="2649"/>
         <source>JSON Files (*.json)</source>
         <translation>JSON Dosyaları (*.json)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2647"/>
+        <location filename="../Project.py" line="2651"/>
         <source>XML Files (*.xml)</source>
         <translation>XML Dosyaları (*.xml)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2649"/>
+        <location filename="../Project.py" line="2653"/>
         <source>YAML Files (*.yaml)</source>
         <translation>YAML Dosyaları (*.yaml)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2758"/>
+        <location filename="../Project.py" line="2762"/>
         <source>The Django test server could not be started.</source>
         <translation>Django testsunucusu çalıştırılamadı.</translation>
     </message>
@@ -1315,44 +1330,44 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2927"/>
+        <location filename="../Project.py" line="2931"/>
         <source>Initializing message catalog for &apos;{0}&apos;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3186"/>
+        <location filename="../Project.py" line="3190"/>
         <source>No current site selected or no site created yet. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2947"/>
+        <location filename="../Project.py" line="2951"/>
         <source>
 Message catalog initialized successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3059"/>
+        <location filename="../Project.py" line="3063"/>
         <source>Updating message catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3150"/>
+        <location filename="../Project.py" line="3154"/>
         <source>No locales detected. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3110"/>
+        <location filename="../Project.py" line="3114"/>
         <source>
 Message catalogs updated successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3176"/>
+        <location filename="../Project.py" line="3180"/>
         <source>Compiling message catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3193"/>
+        <location filename="../Project.py" line="3197"/>
         <source>
 Message catalogs compiled successfully.</source>
         <translation type="unfinished"></translation>
@@ -1388,12 +1403,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3091"/>
+        <location filename="../Project.py" line="3095"/>
         <source>Updating message catalogs (keeping obsolete messages)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2788"/>
+        <location filename="../Project.py" line="2792"/>
         <source>Change Password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1433,7 +1448,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2846"/>
+        <location filename="../Project.py" line="2850"/>
         <source>Clear Sessions</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1463,12 +1478,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2788"/>
+        <location filename="../Project.py" line="2792"/>
         <source>Enter the name of the user:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2858"/>
+        <location filename="../Project.py" line="2862"/>
         <source>Expired sessions cleared successfully.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1488,7 +1503,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3222"/>
+        <location filename="../Project.py" line="3226"/>
         <source>The translations editor process ({0}) could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1618,7 +1633,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2454"/>
+        <location filename="../Project.py" line="2456"/>
         <source>Make Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1638,7 +1653,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2484"/>
+        <location filename="../Project.py" line="2488"/>
         <source>No migrations available.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1653,7 +1668,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2497"/>
+        <location filename="../Project.py" line="2501"/>
         <source>Squash Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1718,7 +1733,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3267"/>
+        <location filename="../Project.py" line="3271"/>
         <source>Check Project</source>
         <translation type="unfinished"></translation>
     </message>

eric ide

mercurial