【問題一】
1. >> python3 manage.py makemigrations
django.db.utils.internalerror: (1050, "table 'django_admin_log' already exists")
2. 錯誤原因:在遷移檔案0001中需要新建表django_admin_log,但是資料庫中已存在乙個原有的表
3. 解決方案:
(1) 將原有表刪除即可: mysql>> drop table django_admin_log;
(2) 重新遷移資料庫: >> python3 manage.py migrate
【問題二】
1. >> python3 manage.py makemigrations
2. 錯誤原因:新遷移的檔案與舊的遷移檔案衝突的問題
3. 解決方案:
刪除舊的遷移檔案,生成新的遷移檔案回滾即可
>> python3 manage.py makemigrations
>> python3 manage.py migrate --fake users zero
>> python3 manage.py migrate
【問題三】
2. user實體類
class user(abstractuser): # 繼承abstractuser
nickname = models.charfield(max_length=30,null=true,verbose_name='暱稱')
phone = models.charfield(max_length=30,null=true,unique=true,verbose_name='手機號')
gender = models.charfield(max_length=10,choices=gender,default='1',null=true,blank=true,verbose_name='性別')
usertype = models.integerfield(choices=usertype,default=2,verbose_name='使用者型別') # 1表示賣家,2表示買家
is_delete = models.booleanfield(default=false,verbose_name='是否禁用使用者')
def __str__(self):
return self.username
class meta:
db_table = 'user_user' # 資料庫表名
3. 錯誤原因:沒有給繼承自abstractuser類的user實體類授權,需要在settings.py裡配置
4. 解決方案:
(1) 在settings.py檔案中新增user應用,並新增user授權
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'user',
]auth_user_model = 'user.user' # 指定user的模型, 應用.模型
(2) 重新遷移資料庫
>> python3 manage.py makemigrations
>> python3 manage.py migrate
可以參考》 valueerror in django when running the 「python manage.py migrate」 command
資料庫遷移問題
一 spark讀資料為空問題 近期資料庫遷移,使用sqoop抽資料到hive,然後用spark讀資料。經過測試sqoop底層是使用mapreduce程式把oracle資料匯入到hive中的 所以我們應該使用hive的引擎去讀這些表,需要在spark 中新增配置 hivecontext.setconf...
django 遷移工程資料庫無法建立的問題
1.今天我遇到乙個問題在此做筆記記下來 2.我晚上一般是在家練習的,白天會拷貝工程到公司用 3.因為我在家裡建立過一次資料庫了,通過命令建立,但是無論我怎麼修改models都無法建立表,最後只能通過新建乙個資料庫,修改setting來建立表了,方法比較笨 python3 manage.py make...
Django關係型資料庫及遷移
1.在指定資料庫中建立資料庫如mysql中 create database 名字 charset utf8databases default 在models.py中操作 from django.db import models create your models here.class userin...