英文:
How to run django files in another virtualenv environment on another server?
问题
我正在将一个使用Django创建的网站迁移到另一台服务器上的过程中。我已经将所有文件打包成一个zip包,然后在第二台服务器上创建了一个新的virtualenv环境,并将数据导出为一个.json文件。我已经将所有文件都传输到目标服务器上,但不幸的是,我不知道接下来该怎么做。
在新的virtualenv环境中如何运行Django?我应该将文件提取到新的virtualenv环境的文件夹中吗?如果是这样,是否需要首先激活virtualenv?
我还要补充说明迁移是从两个不同的系统进行的,即从Windows迁移到Ubuntu。
英文:
I am in the process of moving a site created in django to another server. I have packed all files into a zip package, created a new virtualenv environment on a second server, and dumpdate into a .json file. I already have all the files on the destination server, but unfortunately I don't know what to do next.
How to run django in the new virtualenv environment? Should I extract the files to a folder with the new virtualenv? If so, do I have to activate virtualenv first?
I will also add that migration takes place from two different systems. From windows on ubuntu.
答案1
得分: 4
-
使用命令
pip freeze > requirements.txt
将您的环境包保存到文件中。然后在新服务器上创建虚拟环境,并使用命令pip install -r requirements.txt
安装所有包。 -
复制您的代码库到任何您喜欢的地方。
-
如果不是SQLite数据库,请创建您的数据库(空数据库)。进入项目文件夹,运行
python manage.py migrate
来创建数据库表。 -
运行
python manage.py loaddata dbdump.data
来迁移所有数据库中的数据。dbdump.data 是在旧系统上使用python manage.py dumpdata
创建的文件。注意:如果先前的项目包含数据迁移,loaddata 将失败,因为数据库已经包含数据。在这种情况下,您需要使用原始 SQL 手动删除数据库中的所有数据。 -
如果在先前的系统上上传了文件,请将这些文件复制到 MEDIA_ROOT 文件夹中(如果需要,创建它)。在 settings.py 中查找 MEDIA_ROOT。
-
运行
python manage.py collectstatic
。
现在运行 manage.py runserver
并检查一切是否正常运行:curl -v http://127.0.0.1:8000
将显示您项目的响应。
英文:
- Save your env packages to a file with a command
pip freeze > requirements.txt
.
Afterwards on your new server create virtualenv and install all packages with commandpip install -r requirements.txt
.
Do not copy your virtualenv manually, packages might work differently on another system.
activate your virtualenv and run python -m django —version
to check that Django is installed correctly.
-
Copy your code repository anywhere you like.
-
Then create your database (empty database) if it’s not SQLite.
cd
into your project folder. Runpython manage.py migrate
to create the tables of your database. -
Run
python manage.py loaddata dbdump.data
to migrate all the data of your db. dbdump.data is the file created on the old system withpython manage.py dumpdata
. Note: if the previous project contained data migrations, loaddata will fail because the db will already contain data. In that case you’ll need to manually delete all data in the database first using raw sql. -
If you had uploaded files on your previous system, copy these files into the MEDIA_ROOT folder (create it if necessary). Check for MEDIA_ROOT in settings.py
-
Run
python manage.py collectstatic
Now run manage.py runserver
and check everything works: curl -v http://127.0.0.1:8000
will show you your project's response.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论