我有一个'xxxxx.db' sqlite3数据库,我想将数据移动到PostgreSQL。我做了一些研究,看到了一些选择,但没有一个是有效的(PGloader等)。还有其他选择吗?我使用的是Windows,但Linux的解决方案也很受欢迎。
我试过在PowerShell(通过Jupyter Notebook):
!pip install virtualenvwrapper-win
!mkvirtualenv [name]
!pip install django
!django-admin startproject [name]
cd [name]
!python manage.py startapp app
!python manage.py inspectdb
!python manage.py inspectdb > models.py
!python manage.py migrate
!manage.py runserver
!python manage.py dumpdata > data.json
但是转储不包括来自我的数据库的数据,我也将设置更改为
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': absolute_path_to_db/db,
}
}
提前感谢!
dumpdata
命令[Django-doc]将转储激活的数据库的数据。由于您指向的是新的数据库,这意味着数据库(很可能)是空的,因此根本没有数据要转储。
您只需要激活虚拟环境并转储数据,因此使用旧的数据库作为settings.py
中的活动数据库,您激活虚拟环境,并将数据转储到JSON文件中:
——all>数据。jsonwithvirtualenv
虚拟环境所在目录的名称。
接下来在你的设置中,你可以重写它来使用(新的)PostgreSQL数据库,例如:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': '<db-name>',
'USER': '<db-user>',
'PASSWORD': '<db-password>',
'HOST': '<db-host>',
'PORT': '5432',
}
}
应该安装psycopg2
然后,您可以使用loaddata
从data.json
加载数据。命令(Django-doc):