如何解决ValueError:运行python manage.py时在specifydb之后迁移时,源代码字符串在django中不能包含空字节
我将Django与MysqL数据库连接并运行sql脚本以创建数据库并在django项目上运行迁移,但没有错误,但是要使用该数据库,必须使用python manage.py inspectdb> appname / models .py, 完成此操作后,我按照步骤中的说明清理了模型,但是当我运行时 python manage.py migration它给了我这个错误:
MysqL脚本
create database if not exists payroll_db;
use payroll_db;
create table m_state(state_code varchar(2) primary key,state_name varchar(30));
create table m_address(address_id integer primary key,building_details varchar(30) NOT NULL,road varchar(20) NOT NULL,landmark varchar(30) NOT NULL,city varchar(30) NOT NULL,state varchar(2) NOT NULL references m_state(state_code),country varchar(30) default 'India');
create table m_company(company_id integer primary key,company_name varchar(50) NOT NULL,Area Varchar(30),Landmark Varchar(30),City varchar(30),country varchar(30) default 'India');
create table m_department(company_id integer NOT NULL references m_company(company_id),department_id integer primary key,department_name varchar(30) NOT NULL);
create table m_grade(grade_id integer primary key,grade_name varchar(20) NOT NULL);
create table m_employee(employee_id integer primary key,employee_name varchar(30) NOT NULL,department_id integer references m_department(department_id),company_id integer NOT NULL references m_company(company_id),country varchar(30) default 'India',employee_doj date NOT NULL,grade_id integer NOT NULL references m_grade (grade_id));
create table m_paygrade(employee_id integer NOT NULL references m_employee(employee_id),grade_id integer NOT NULL references m_grade(grade_id),basic_amt integer NOT NULL,da_amt integer NOT NULL,pf_amt integer NOT NULL,medical_amt integer NOT NULL,primary key(employee_id,grade_id));
create table m_pay(employee_id integer NOT NULL references m_employee(employee_id),fin_year integer NOT NULL,gross_salary integer NOT NULL,gross_dedn integer NOT NULL,net_salary integer NOT NULL,primary key(fin_year,employee_id));
create table t_leave( employee_id integer NOT NULL references m_employee(employee_id),leave_date date NOT NULL,leave_type varchar(4) check (leave_type IN('CL','SL','PL','LWP')));
create table t_achievement(employee_id integer NOT NULL references m_employee(employee_id),achievement_date date NOT NULL,achievement_type varchar(80) NOT NULL);
django models.py代码:
from django.db import models
# class AuthGroup(models.Model):
# name = models.CharField(unique=True,max_length=150)
# class Meta:
# managed = True
# db_table = 'auth_group'
# class AuthGroupPermissions(models.Model):
# group = models.ForeignKey(AuthGroup,models.DO_nothing)
# permission = models.ForeignKey('AuthPermission',models.DO_nothing)
# class Meta:
# managed = True
# db_table = 'auth_group_permissions'
# unique_together = (('group','permission'),)
# class AuthPermission(models.Model):
# name = models.CharField(max_length=255)
# content_type = models.ForeignKey('DjangoContentType',models.DO_nothing)
# codename = models.CharField(max_length=100)
# class Meta:
# managed = True
# db_table = 'auth_permission'
# unique_together = (('content_type','codename'),)
# class AuthUser(models.Model):
# password = models.CharField(max_length=128)
# last_login = models.DateTimeField(blank=True,null=True)
# is_superuser = models.IntegerField()
# username = models.CharField(unique=True,max_length=150)
# first_name = models.CharField(max_length=150)
# last_name = models.CharField(max_length=150)
# email = models.CharField(max_length=254)
# is_staff = models.IntegerField()
# is_active = models.IntegerField()
# date_joined = models.DateTimeField()
# class Meta:
# managed = True
# db_table = 'auth_user'
# class AuthUserGroups(models.Model):
# user = models.ForeignKey(AuthUser,models.DO_nothing)
# group = models.ForeignKey(AuthGroup,models.DO_nothing)
# class Meta:
# managed = True
# db_table = 'auth_user_groups'
# unique_together = (('user','group'),)
# class AuthUserUserPermissions(models.Model):
# user = models.ForeignKey(AuthUser,models.DO_nothing)
# permission = models.ForeignKey(AuthPermission,models.DO_nothing)
# class Meta:
# managed = True
# db_table = 'auth_user_user_permissions'
# unique_together = (('user',)
# class DjangoAdminLog(models.Model):
# action_time = models.DateTimeField()
# object_id = models.TextField(blank=True,null=True)
# object_repr = models.CharField(max_length=200)
# action_flag = models.PositiveSmallIntegerField()
# change_message = models.TextField()
# content_type = models.ForeignKey('DjangoContentType',models.DO_nothing,blank=True,null=True)
# user = models.ForeignKey(AuthUser,models.DO_nothing)
# class Meta:
# managed = True
# db_table = 'django_admin_log'
# class DjangoContentType(models.Model):
# app_label = models.CharField(max_length=100)
# model = models.CharField(max_length=100)
# class Meta:
# managed = True
# db_table = 'django_content_type'
# unique_together = (('app_label','model'),)
# class DjangoMigrations(models.Model):
# app = models.CharField(max_length=255)
# name = models.CharField(max_length=255)
# applied = models.DateTimeField()
# class Meta:
# managed = True
# db_table = 'django_migrations'
# class DjangoSession(models.Model):
# session_key = models.CharField(primary_key=True,max_length=40)
# session_data = models.TextField()
# expire_date = models.DateTimeField()
# class Meta:
# managed = True
# db_table = 'django_session'
class MState(models.Model):
state_code = models.CharField(primary_key=True,max_length=2)
state_name = models.CharField(max_length=30,null=True)
class Meta:
managed = True
db_table = 'm_state'
class MAddress(models.Model):
address_id = models.IntegerField(primary_key=True)
building_details = models.CharField(max_length=30)
road = models.CharField(max_length=20)
landmark = models.CharField(max_length=30)
city = models.CharField(max_length=30)
state = models.ForeignKey('Mstate',on_delete=models.CASCADE)
country = models.CharField(max_length=30,null=True)
class Meta:
managed = True
db_table = 'm_address'
class MCompany(models.Model):
company_id = models.IntegerField(primary_key=True)
company_name = models.CharField(max_length=50)
building_details = models.CharField(max_length=30)
area = models.CharField(db_column='Area',max_length=30,null=True) # Field name made lowercase.
landmark = models.CharField(db_column='Landmark',null=True) # Field name made lowercase.
city = models.CharField(db_column='City',null=True) # Field name made lowercase.
state = models.ForeignKey('Mstate',null=True)
class Meta:
managed = True
db_table = 'm_company'
class MDepartment(models.Model):
company_id = models.ForeignKey('MCompany',on_delete=models.CASCADE)
department_id = models.IntegerField(primary_key=True)
department_name = models.CharField(max_length=30)
class Meta:
managed = True
db_table = 'm_department'
class MGrade(models.Model):
grade_id = models.IntegerField(primary_key=True)
grade_name = models.CharField(max_length=20)
class Meta:
managed = True
db_table = 'm_grade'
class MEmployee(models.Model):
employee_id = models.IntegerField(primary_key=True)
employee_name = models.CharField(max_length=30)
department_id = models.ForeignKey('MDepartment',on_delete=models.CASCADE)
company_id = models.ForeignKey('MCompany',on_delete=models.CASCADE)
building_details = models.CharField(max_length=30)
area = models.CharField(db_column='Area',null=True)
employee_doj = models.DateField()
grade_id = models.ForeignKey('MGrade',on_delete=models.CASCADE)
class Meta:
managed = True
db_table = 'm_employee'
class MPaygrade(models.Model):
employee_id = models.ForeignKey('MEmployee',on_delete=models.CASCADE)
grade_id = models.ForeignKey('MGrade',on_delete=models.CASCADE)
basic_amt = models.IntegerField()
da_amt = models.IntegerField()
pf_amt = models.IntegerField()
medical_amt = models.IntegerField()
paygrade_id = models.AutoField(primary_key=True)
class Meta:
managed = True
db_table = 'm_paygrade'
unique_together = (('employee_id','grade_id'),)
class MPay(models.Model):
employee_id = models.ForeignKey('MEmployee',on_delete=models.CASCADE)
fin_year = models.IntegerField()
gross_salary = models.IntegerField()
gross_dedn = models.IntegerField()
net_salary = models.IntegerField()
MPay_id = models.AutoField(primary_key=True)
class Meta:
managed = True
db_table = 'm_pay'
unique_together = (('fin_year','employee_id'),)
class TLeave(models.Model):
employee_id = models.ForeignKey('MEmployee',on_delete=models.CASCADE)
fin_year = models.IntegerField()
leave_date = models.DateField()
leave_type = models.CharField(max_length=4,null=True)
leave_id =models.AutoField(primary_key=True)
class Meta:
managed = True
db_table = 't_leave'
class TAchievement(models.Model):
employee_id = models.ForeignKey('MEmployee',on_delete=models.CASCADE)
achievement_date = models.DateField()
achievement_type = models.CharField(max_length=80)
achievement_id = models.AutoField(primary_key=True)
class Meta:
managed = True
db_table = 't_achievement'
错误回溯:
Traceback (most recent call last):
File "manage.py",line 22,in <module>
main()
File "manage.py",line 18,in main
execute_from_command_line(sys.argv)
File "C:\Users\chira\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\python38\site-packages\django\core\management\__init__.py",line 401,in execute_from_command_line
utility.execute()
File "C:\Users\chira\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\python38\site-packages\django\core\management\__init__.py",line 377,in execute
django.setup()
File "C:\Users\chira\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\python38\site-packages\django\__init__.py",line 24,in setup
apps.populate(settings.INSTALLED_APPS)
File "C:\Users\chira\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\python38\site-packages\django\apps\registry.py",line 114,in populate
app_config.import_models()
File "C:\Users\chira\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\python38\site-packages\django\apps\config.py",line 211,in import_models
self.models_module = import_module(models_module_name)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\importlib\__init__.py",line 127,in import_module
return _bootstrap._gcd_import(name[level:],package,level)
File "<frozen importlib._bootstrap>",line 1014,in _gcd_import
File "<frozen importlib._bootstrap>",line 991,in _find_and_load
File "<frozen importlib._bootstrap>",line 975,in _find_and_load_unlocked
File "<frozen importlib._bootstrap>",line 671,in _load_unlocked
File "<frozen importlib._bootstrap_external>",line 779,in exec_module
File "<frozen importlib._bootstrap_external>",line 916,in get_code
File "<frozen importlib._bootstrap_external>",line 846,in source_to_code
File "<frozen importlib._bootstrap>",line 219,in _call_with_frames_removed
ValueError: source code string cannot contain null bytes
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。