Как разделить одну базу данных на две с помощью django
У меня есть одна большая таблица данных (в Postgresql), которую я хочу превратить в две таблицы. Соответственно, в первой таблице мне нужны определенные столбцы из большой таблицы. А во вторую таблицу мне нужно перенести оставшиеся столбцы
вот мой старый model.py
class HV(models.Model):
from direction.models import Project
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=60)
address = models.CharField(max_length=90)
username = models.CharField(max_length=60)
password = models.BinaryField()
kind = models.CharField(max_length=60)
enabled = models.BooleanField(default=True)
availability = models.BooleanField(default=True)
time_unavailable = models.DateTimeField(null=True)
direction = models.ForeignKey(Department, on_delete=models.PROTECT, null=True, default=None)
project = models.ForeignKey(Project, on_delete=models.PROTECT, null=True, default=None)
class Meta:
managed = True
db_table = 'hv_list_service'
def __str__(self):
return self.name
и мой новый models.py
class ClusterName(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=60)
kind = models.CharField(null=True, max_length=10)
enabled = models.BooleanField(default=True)
availability = models.BooleanField(default=True)
time_availability = models.DateTimeField()
direction_id = models.ForeignKey(Department, on_delete=models.PROTECT)
project_id = models.ForeignKey(Project, on_delete=models.PROTECT)
class Meta:
managed = True
db_table = 'vmlist_cluster_name'
def __str__(self):
return self.name
class ClusterPooling(models.Model):
id = models.AutoField(primary_key=True)
address = models.CharField(null=True, max_length=120)
username = models.CharField(null=True, max_length=50)
password = models.BinaryField(null=True)
cluster_name_id = models.ForeignKey(ClusterName, null=True, on_delete=models.PROTECT)
active = models.BooleanField(null=True)
class Meta:
managed = True
db_table = 'vmlist_cluster_polling'
def __str__(self):
return self.address
Я знаю, что можно переносить данные из одной таблицы в другую с помощью Django, но я понятия не имею, как должен выглядеть скрипт
Думаю, вы можете попробовать использовать django import export package https://django-import-export.readthedocs.io/en/latest/
Самый простой способ сделать это - выполнить эти команды в psql
INSERT INTO vmlist_cluster_name (id,name,kind,enabled,availability,time_availability,direction_id_id,project_id_id)
SELECT id, name, kind,enabled ,availability ,time_unavailable ,direction_id ,project_id FROM public.hv_list_service
INSERT INTO vmlist_cluster_polling (id,address,username,password)
SELECT id, address, username, password FROM public.hv_list_service