Как в документации , вы также можете подключаться к устаревшим базам данных.Для этого вам нужно подключить ваш текущий проект Django к этой БД, например, создать новый проект с помощью django-admin.py startproject yourproject
, затем перейти к настройкам и обновить настройку DATABASES
следующим образом:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'DB_NAME',
'USER': 'DB_USER',
'PASSWORD': 'DB_PASSWORD',
'HOST': 'localhost', # Or an IP Address that your DB is hosted on
'PORT': '3306',
}
}
А затем запустить python manage.py inspectdb
.Вы также можете вывести его в виде модели, такой как python manage.py inspectdb > models.py
Обновление:
Из того, что я вижу, ваша БД должна быть:
class Post(models.Model):
post_id = models.AutoField(primary_key=True)
class Meta:
db_table = 'posts'
class PostText(models.Model):
post = models.ForeignKey(Post)
post_text = models.TextField()
class Meta:
db_table = 'posts_text'
class Season(models.Model):
# season fields
class Meta:
db_table = 'season'
class Episode(models.Model):
season = models.ForeignKey(Season)
episode_name = models.CharField(max_length=255) # depends on your DB
posts = models.ManyToManyField(Post, through="EpisodePost")
class Meta:
db_table='episode'
class EpisodePost(models.Model):
season = models.ForeignKey(Season)
episode = models.ForeignKey(Episode)
post = models.ForeignKey(Post)
class Meta:
db_table='episode_post_relationship'
Но, прежде чем делать что-либо с вышеуказанными отношениями, убедитесь, что у вас есть резервная копия вашей текущей БД.