We need to modify the original Django project to better carry out project migration work. The first thing that needs to be modified issettings.pyFile.
Since users cannot see the background running logic after the project is online, we need to change DEBUG to False, Write ALLOWED_HOSTS as ‘*’ to allow access from different hosts.
Since the file may not be found if this sentence is not added in Linux, we need to splice the template paths.
Since the Django project must have synchronized the database, we need to delete the synchronization file in migrations so that the database in the Linux system Synchronize.
First we need to package the Django environment.
I am using a sandbox environment and enter the sandbox environment directly, and then execute the above command to package.
mysqldump -u username -p database name table name 1 table name 2 > exported sql file name
Then export the database structure into a sql file, here It should be noted that when exporting the database, do not export all tables, only export the tables you created.
Then we can transfer the project environment, sql file and our own complete project to linux through xftp .
Linux comes with python2. We don’t need to delete python2, just let python2 and python3 coexist. .
First install the dependency package of python3
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make -y
Then download the installation package of python3
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz
Unzip the installation package
tar -xvJf Python-3.6.2.tar.xz
If you are installing version 3.5 here python, when using the manage.py command, a no module secrets error will be reported.
After completing the above steps, we can see that a python file appears under the current path. We enter this folder to compile and install
Here We install it under usr/loacl/python3 by default.
After running, execute the make && make installcommand
Then set up the soft link
ln -s /usr/local/python3/bin/python3 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
Up to this point we have achieved the coexistence of python3 and python2 , enter python3 and pip3 to use python3, enter python and pip to use python2.
Since linux is not compatible with mysql since centos7 database, but use the mariadb database, so we also need to use the mariadb database. In fact, the two databases are exactly the same, even the commands are the same, but the names have been changed.
We only need to start the mariadb database
systemctl start mariadb #启动mariadb数据库 systemctl enable mariadb #开机启动mariadb数据库
After the database is started, we can use mysql -uroot -p to enter the database
After the above preparations are completed, we can configure our Django project on the Linux system
First we need to configure the Django environment.
pip install -r package.txt
Then for database synchronization, we first need to create the corresponding library, and then execute
An error may be reported when performing database matching
raise ImproperlyConfigured( ‘mysqlclient 1.3.13 or newer is required; you have %s.’ % Database.version)
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9. 3.
Solution:
C:\Python37\Lib\site-packages\django\db\backends\mysql (python installation Directory) Open base.py and comment out the following: ; % Database.version)
Then check whether the corresponding table appears in your database, and then import the sql filesource sql file pathpython3 manage.py makemigrations python3 manage.py migrateCopy after loginUp to this point our Django project has completed the migration.
The above is the detailed content of How to migrate Django project to linux system. For more information, please follow other related articles on the PHP Chinese website!