Django-使用迁移命令可检测到更改,但在迁移时显示“不应用任何迁移”

时间:2020-05-30 07:30:37

标签: django python-3.x

更改模型后,我是django开发的新手,我尝试运行命令public class MachineViewModel : ViewModelBase { #region public statments Textbox text //Public statments to get textbox text public string MachineID { get; set; } public string CustomerID { get; set; } public string CustomerName { get; set; } public string City { get; set; } public string Country { get; set; } public string PartName { get; set; } public string PartNumber { get; set; } public string Project { get; set; } public string SpindleC1 { get; set; } public string SpindleC2 { get; set; } public string HoningHead { get; set; } public string NCVersion { get; set; } public string HMIVersion { get; set; } public string HRIVersion { get; set; } public string AHSVersion { get; set; } #endregion //DialogService private IDialogService _dialogService; //Operation button for save, update, delete, selection changed and print public ICommand SaveCommand { get; private set; } public ICommand UpdateCommand { get; private set; } public ICommand DeleteCommand { get; private set; } public ICommand ClearCommand { get; private set; } public ICommand SelectionChangedCommand { get; set; } //observable collection for machine model public ObservableCollection<Machine> DataContext { get; set; } private Machine machineSelectedItem; public Machine MachineSelectedItem { get { return machineSelectedItem; } set { machineSelectedItem = value; } } public object MachineDataGrid { get; set; } public List<MachineClient> cmbclientDetails; //PRWContext for general use private PRWContext context = new PRWContext(); public MachineViewModel() { //Commands for save, update, delete and print SaveCommand = new RelayCommand(() => ExecuteSaveCommand()); UpdateCommand = new RelayCommand(() => ExecuteUpdateCommand()); DeleteCommand = new RelayCommand(() => ExecuteDeleteCommand()); ClearCommand = new RelayCommand(() => ExecuteClearCommand()); SelectionChangedCommand = new RelayCommand(() => ExecuteSelectionChangedCommand()); //Load the data from PRW Database to datagrid LoadData(); //Normelly done with dependency injection _dialogService = new DialogService(); } //execute save private void ExecuteSaveCommand() { Machine machine = new Machine { //Machine data MachineID = MachineID, CustomerID = CustomerID, CustomerName = CustomerName, City = City, Country = Country, //Part data PartName = PartName, PartNumber = PartNumber, Project = Project, //Serial data SpindleC1 = SpindleC1, SpindleC2 = SpindleC2, HoningHead = HoningHead, //Softwareversion data NCVersion = NCVersion, HMIVersion = HMIVersion, HRIVersion = HRIVersion, AHSVersion = AHSVersion }; context.Machines.Add(machine); context.SaveChanges(); ClearContent(); } //execute update private void ExecuteUpdateCommand() { Machine machine = context.Machines.FirstOrDefault(w => w.MachineID == MachineID); machine.CustomerID = CustomerID; machine.CustomerName = CustomerName; machine.City = City; machine.Country = Country; machine.PartName = PartName; machine.PartNumber = PartNumber; machine.Project = Project; machine.SpindleC1 = SpindleC1; machine.SpindleC2 = SpindleC2; machine.HoningHead = HoningHead; machine.NCVersion = NCVersion; machine.HMIVersion = HMIVersion; machine.HRIVersion = HRIVersion; machine.AHSVersion = AHSVersion; context.Machines.AddOrUpdate(machine); context.SaveChanges(); ClearContent(); } //execute delete private void ExecuteDeleteCommand() { if (machineSelectedItem != null) { var dialog = new YesNoDialogViewModel("Question", "Your are Sure to Delete the Record?"); var result = _dialogService.OpenDialog(dialog); if (result == DialogResults.Yes) { Machine machine = context.Machines.FirstOrDefault(w => w.MachineID == MachineID); context.Machines.Remove(machine); context.SaveChanges(); ClearContent(); } } else { var dialog = new AlertDialogViewModel("Attention", "Please select a Record!"); var result = _dialogService.OpenDialog(dialog); Console.WriteLine(result); } } //execute clear private void ExecuteClearCommand() { ClearContent(); } // Execute selection changed private void ExecuteSelectionChangedCommand() { if(machineSelectedItem != null) { MachineID = machineSelectedItem.MachineID?.ToString() ?? ""; CustomerID = machineSelectedItem.CustomerID?.ToString() ?? ""; CustomerName = machineSelectedItem.CustomerName?.ToString() ?? ""; City = machineSelectedItem.City?.ToString() ?? ""; Country = machineSelectedItem.Country?.ToString() ?? ""; PartName = machineSelectedItem.PartName?.ToString() ?? ""; PartNumber = machineSelectedItem.PartNumber?.ToString() ?? ""; Project = machineSelectedItem.Project?.ToString() ?? ""; SpindleC1 = machineSelectedItem.SpindleC1?.ToString() ?? ""; SpindleC2 = machineSelectedItem.SpindleC2?.ToString() ?? ""; HoningHead = machineSelectedItem.HoningHead?.ToString() ?? ""; NCVersion = machineSelectedItem.NCVersion?.ToString() ?? ""; HMIVersion = machineSelectedItem.HMIVersion?.ToString() ?? ""; HRIVersion = machineSelectedItem.HRIVersion?.ToString() ?? ""; AHSVersion = machineSelectedItem.AHSVersion?.ToString() ?? ""; } else { machineSelectedItem = null; } } //Load data from database to grid private void LoadData() { context.Machines.Load(); this.DataContext = context.Machines.Local; } //Clear textboxes private void ClearContent() { MachineID = string.Empty; CustomerID = string.Empty; CustomerName = string.Empty; City = string.Empty; PartName = string.Empty; PartNumber = string.Empty; Project = string.Empty; Country = string.Empty; SpindleC1 = string.Empty; SpindleC2 = string.Empty; HoningHead = string.Empty; NCVersion = string.Empty; HMIVersion = string.Empty; HRIVersion = string.Empty; AHSVersion = string.Empty; } } 它检测到我的模型发生了变化,并向我显示消息python manage.py makemigrations my_app 但是在执行 todoapp/migrations/0001_initial.py - Create model confess - Create model UserChoice - Create model comment命令时,我收到了此消息 python manage.py migrate my_app 我通常在更改模型后执行此操作,我不知道现在发生了什么。 请帮助我。

2 个答案:

答案 0 :(得分:0)

首先,尝试

python manage.py makemigrations my_app
python manage.py migrate

如果这不起作用并且该项目仍在开发中:

  1. 删除迁移文件夹和 pycache 文件夹。
  2. 删除db.sqlite3(您的数据库)。
  3. 再次进行迁移并应用迁移。

我认为这会起作用。

答案 1 :(得分:-1)

从项目和应用中删除所有迁移文件和__pychache____init__.py。然后,db.sqlite3数据库也重新运行makemigrationsmigrate命令。它应该可以解决您的问题。