Docker布署Django框架外贸网站实操(三 SQLite切换PostgreSQL)

news/2024/5/12 11:45:02/文章来源:https://blog.csdn.net/alal001/article/details/98503259

前期已经基本上完成布署工作了,下面就是优化的过程了,主要解决数据库切换、nginx代理工作。数据库和nginx都单独安装在一个docker内,万一将来项目做大做强了。升级负载均衡会非常容易。现在先在一台服务器上跑多个项目,将来用多台服务器来跑一个项目,切换超简单。nginx真是一个伟大的项目!

安装配置postgresql

找到一个docker映像带有postgresql,先pull下来,建立/home/docker-date/postgre/,将数据挂在本地机上,方便数据备份。

docker pull enapiuz/ubuntu-postgres-python
docker run -it -d --name postgre -p 65432:5432 -v /home/docker-date/postgre/:/tmp/ enapiuz/ubuntu-postgres-python    # 这命令有点长,-d是后台运行 -v挂载本地目录 -p端口映射 

在这里插入图片描述
竟然没有vi…,这个映像文件有点坑。而且装不了,好像缺少依赖。装vim也不成功。换个源都不容易,找到一个办法,网上找的好英明!先连上容器:

mv /etc/apt/sources.list /etc/apt/sources.list.bak    echo "deb http://mirrors.163.com/ubuntu/ precise main restricted" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/ubuntu/ precise main restricted" >>/etc/apt/sources.list
echo "deb http://mirrors.163.com/ubuntu/ precise-updates main restricted" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/ubuntu/ precise-updates main restricted" >>/etc/apt/sources.list
echo "deb http://mirrors.163.com/ubuntu/ precise universe" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/ubuntu/ precise universe" >>/etc/apt/sources.list
echo "deb http://mirrors.163.com/ubuntu/ precise-updates universe" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/ubuntu/ precise-updates universe" >>/etc/apt/sources.list
echo "deb http://mirrors.163.com/ubuntu/ precise multiverse" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/ubuntu/ precise multiverse" >>/etc/apt/sources.list
echo "deb http://mirrors.163.com/ubuntu/ precise-updates multiverse" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/ubuntu/ precise-updates multiverse" >>/etc/apt/sources.list
echo "deb http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse" >>/etc/apt/sources.list
echo "deb http://mirrors.163.com/ubuntu/ precise-security main restricted" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/ubuntu/ precise-security main restricted" >>/etc/apt/sources.list
echo "deb http://mirrors.163.com/ubuntu/ precise-security universe" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/ubuntu/ precise-security universe" >>/etc/apt/sources.list
echo "deb http://mirrors.163.com/ubuntu/ precise-security multiverse" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/ubuntu/ precise-security multiverse" >>/etc/apt/sources.list
echo "deb http://extras.ubuntu.com/ubuntu precise main" >>/etc/apt/sources.list
echo "deb-src http://extras.ubuntu.com/ubuntu precise main" >>/etc/apt/sources.list

总算装上了vim,这样就可以配置postgresql了。

# 修改监听地址
vim /etc/postgresql/10/main/postgresql.conf
#listen_addresses =  'localhost' 的注释去掉并改为 listen_addresses =  '*'
#password_encryption = md5 的注释去掉
:x
# 修改可访问用户的IP段,在文件末尾添加, ,表示允许任何IP连接,也可以指定IP:
vim /etc/postgresql/10/main/pg_hba.confhost all all 0.0.0.0/0 md5      # IPV4host  all  all   ::/0  md5		# IPV6
:x
/etc/init.d/postgresql start		# 启动数据库
su postgres	# 切换用户,这个用户是安装时自动生成的,可以直接使用。
psql		# SQL的命令行
ALTER USER postgres WITH PASSWORD 'newpassword';

这样就可以使用了,也可以另建一个用户,默认连接与用户名同名的数据库,所以也要建一个同用户名的数据库(不同名需要指定owner),还需要在LINUX系统中建立一个同名的用户,这是使用ident基于身份验证的身份登录的要求,md5就不用管了。

adduser userabc		# linux中
CREATE USER userabc WITH PASSWORD  'psaaword';   	# psql中建立用户,注意分号结尾
CREATE DATABASE abcdb WITH OWNER userabc;
#GRANT ALL PRIVILEGES ON abcdb TO userabc;    # 授权,无需执行

好了,理论上应该差不多了。去另一个容器中导出数据,改变数据库试试吧~
先登陆进另一个WEB服务容器:

cd /home/abc     
python3 manage.py dumpdata > data.json     #  导出为JSON格式
vim settings.py
'''改成如下:
DATABASES = {'default': {'ENGINE': 'django.db.backends.postgresql_psycopg2','NAME': 'postgres',    # 数据库名  'USER': 'postgres','PASSWORD': 'password','HOST': '172.17.0.2',   ''' 这里采用IP+端口容器间连接,还有个LINK方法没研究过,IP方式是熟练工。前面容器映射了端口到主机的65432,方便外网连接''''PORT': '5432',}
}
'''
pip3 install psycopg2    # 有坑,难装。注意依赖apt install libpq-dev, 注意开发包版本。
python3 manage.py migrate --run-syncdb    # 初始化数据库,坑大。

这一步和数据库设计相关,如果设计得比较复杂,很可能初始化不成功。会有各种各样的奇怪提示~,度娘和GG都找不到原因…都是些数据库的兼容性问题。比如关系不存在的问题,可以注释掉一个表单、URL再初始化,生成迁移,执行迁移。


成功后进入django的shell中执行

 from django.contrib.contenttypes.models import ContentTypeContentType.objects.all().delete()    # 删除初始化时自动生成的数据ctrl+d

最后导入json数据即可,这里也可能出很多问题。还是兼容性问题!可能会遇到 KEY XXX already exists之类的问题。

python3 manage.py loaddata data.json

先这样吧,下回试试excel导入的方法是不是方便点。
这就完成了数据库迁移,下回再做nginx多域名代理。

原创文章,版权所有。未经许可,严禁转载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_885596.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

免安装、免激活,绿色版的电脑软件下载网站

转自:https://baijiahao.baidu.com/s?id1591795121454398107&wfrspider&forpc 我们平常很多时候都需要下载很多的电脑软件,但是又不知道去哪里下载,今天分享的这五个网站,相信应该对你有用。 一:zd423 htt…

大型网站系统架构演化之路

一个成熟的大型网站(如淘宝、天猫、腾讯等)的系统架构并不是一开始设计时就具备完整的高性能、高可用、高伸缩等特性的,它是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式、技术架…

UbuntuBSD 官方网站正式上线

在今年3月12日上线之后,ubuntuBSD项目(整合FreeBSD核心和Ubuntu Linux)赢得了很多用户的关注,项目创始人Jon Boden甚至希望在未来成为官方Ubuntu项目或风格(Flavor)。今天,Boden再次发布好消息该…

linux企业实战----大型网站架构概述

目录标题 1. 网站架构演化发展历程2. 使用缓存服务器改善网站性能3. 使用应用服务器集群改善并发处理能力4. 数据库读写分离5. 使用反响代理和cdn加速网站响应6. 使用分布式文件系统和分布式数据库系统7. 使用nosql和搜索引擎8. 业务拆分9. 分布式服务 1. 网站架构演化发展历程…

python爬取网站文本格式数据保存到postgresql数据库

通过自学两周在工作中用python写的一个应用,主要是获取网站txt格式的数据,插入到postgresql数据库中,由于网站txt格式数据每日更新,结合windows的计划任务或Linux的crontab计划来实现每日更新数据的要求。 源格式如下:…

使用apache服务部署静态网站--初篇

1、将镜像挂载到本地 2、创建本地yum源 目录和文件格式懂得都懂 3、检查yum源并下载httpd服务 重启httpd并开机自启 4、将你想要的网页内容写入/var/www/html/index.html 5、检验一下,用系统自带浏览器访问本地网口127.0.0.0

大型网站应用之海量数据和高并发解决方案总结

一、网站应用背景 开发一个网站的应用程序,当用户规模比较小的时候,使用简单的:一台应用服务器一台数据库服务器一台文件服务器,这样的话完全可以解决一部分问题,也可以通过堆硬件的方式来提高网站应用的访问性能&…

如何拥有一个属于自己的网站

前言 网站顾名思义就是网上的一个站点 而你打开的页面就是一个站点上的一个一个文件。那就有人问了,我有一台可以上网的计算机可不可以当站点用呢?答案是肯定的 通俗点来讲就跟你平时串门一样 这家门开着你就可以进去 但是现在计算机日益发展强大 家…

Java开发网站项目系统架构的演变

简单梳理一下 从古到今(?)项目架构的变化并阐述相应原理 一、单体应用架构(All-In-One) web项目最早期的使用,也应用于现在一些很小简单项目,将所有的应用,数据库,文件作…

实战检测北大青鸟某地方学校网站

本文写的是一次曲折的拿北大青鸟某地方学校网站shell的过程。 之前也曾拿过一个北大青鸟某网站的文章,我再次萌生了我个北大青鸟的网站练练手的想法。其实以前我也尝试过检测了几个北大青鸟地方学校的网站,简单看了下没有注入漏洞没有弱口令就放弃了。看…

为不同类型的网站选择最佳的SSL证书(上)

“根据CBS数据分析,2014年,47%美国成年人的个人信息被黑客窃取,大部分主要是通过大公司的数据泄露。如Home Depot,Yahoo和Chase。事件爆发之后,占据57.94%浏览器市场的谷歌迅速启动HTTPS相关的协…

游戏中学会写代码:这些编程学习网站不容错过

下面这些网站是从 200 多个游戏编程网站选出的 12 个网站,你可以通过下面的网站在游戏中学习编程。 当然这些网站都是免费的,Mybridge A.I 也评估了这些,这些网站可以帮助喜欢编程的人员学习编程语言,如 JavaScript、java、python…

WebRTC相关技术网站

------------------------------------------------------------- 1,http://www.webrtc.org,需FQ,webrtc官网,神马编译下载,这里的解决方案才是最权威的. 2,基于webrtc封装的一些开源库: 2.1,https://…

【转】浅谈大型网站动态应用系统架构

动态应用,是相对于网站静态内容而言,是指以c/c、php、Java、perl、.net等服务器端语言开发的网络应用软件,比如论坛、网络相册、交友、BLOG等常见应用。动态应用系统通常与数据库系统、缓存系统、分布式存储系统等密不可分。 大型动态应用系统…

WAMP搭建本地环境并安装WordPress网站(图文指导)

零基础搭建PHP本地环境并安装WordPress网站(图文指导) 建PHP本地环境前言 以前在大学课堂上学过一点JAVA, PHP. 因为那时是零基础,需要自己搭建APACH, MYSQL, PHPADMIN过程挺烦的,本地环境都不知道是啥,但是做出来结果…

Wordpress免费主题装修网站(简洁高端主题)

搭载好了本地环境,安装好wordpress并测试OK,即使自己是建站方面的“半吊子”但也不能半途而废,我必须得选一个好的主题来装饰我的网站啊,毕竟运营推广再怎么厉害也要产品好。 安装好的wordprss里已经默认有3个主题了,…

【外贸狗】外贸网站5大基本WordPress插件推荐(2019)

(这是外贸狗第三篇文章,与前面两篇Wordpress建站文章衔接) 网站装修好了,但是很多细节,很多功能都不能满足,例如我自己是做SEO出来的,所以有些SEO标签没有做好,我自己会觉得很膈应。…

【外贸狗】外贸WordPress网站SEO优化基础设置

做好了网站,选好了主题,配备了必备插件,基础SEO怎么设置才能避免后面经常改动基础设置,导致关键词排名降低,页面收录消失等问题呢? 对于外贸建站老鸟来说,他们装备了插件Yoast SEO的时候&#…

外贸B2B网站如何做Google SEO获取流量?

B2B品牌网站通过Google SEO获得自然流量是所有外贸网站的共同目标,因为B2B网站转化最高的来源渠道是自然流量。 对很多外贸狗来说B2B网站通过关键词获得排名很难,不管是你的服务或者产品都很少,关键词很集中,竞争对手多等等造成关…

外贸狗的30个谷歌SEO必备工具推荐!【值得收藏】

“外贸狗,专注于外贸营销推广干货分享!” 这些谷歌SEO工具都是我比较常用的工具,便于大家使用,我做了一个工具汇总。为了便于大家选择,添加了一些简单介绍。如果大家使用过一些国外SEO工具,需要一个工具集…