Django資料庫遷移問題

2021-09-24 13:59:57 字數 1979 閱讀 5739

【問題一】

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...