Django 应用分库,数据迁移成功,数据库没有生成表

Django 应用分库,数据迁移成功,数据库没有生成表

背景:不同应用对应不同数据库,在迁移数据成功后,数据库没有生成表

Django 官网:https://docs.djangoproject.com/ko/1.11/topics/db/multi-db/#allow_migrate

多个数据库有介绍

settings.py 设置

DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'employee_01','USER':'root','PASSWORD':'Zhb123321@','HOST':'localhost','PORT':3306,},'data_***': {'ENGINE': 'django.db.backends.mysql','NAME': 'data_***_01','USER': 'root','PASSWORD': 'Zhb123321@','HOST': 'localhost','PORT': 3306,},
}
#数据库设置
DATABASE_ROUTERS = ['employee_service0001.db_router.database_router']
DATABASE_APPS_MAPPING = {'platform_***':'default','data_***':'data_***',
}

settings.py 同级文件创建 数据库路由分发 db_router:

from .settings import DATABASE_APPS_MAPPINGDATABASE_MAPPING = DATABASE_APPS_MAPPING# 数据库路由分发
class database_router(object):def db_for_read(self, model, **hints):""""Point all read operations to the specific database.""""""将所有读操作指向特定的数据库。"""if model._meta.app_label in DATABASE_MAPPING:return DATABASE_MAPPING[model._meta.app_label]return Nonedef db_for_write(self, model, **hints):"""Point all write operations to the specific database.""""""将所有写操作指向特定的数据库。"""if model._meta.app_label in DATABASE_MAPPING:return DATABASE_MAPPING[model._meta.app_label]return Nonedef allow_relation(self, obj1, obj2, **hints):"""Allow any relation between apps that use the same database.""""""允许使用相同数据库的应用程序之间的任何关系"""db_obj1 = DATABASE_MAPPING.get(obj1._meta.app_label)db_obj2 = DATABASE_MAPPING.get(obj2._meta.app_label)if db_obj1 and db_obj2:if db_obj1 == db_obj2:return Trueelse:return Falseelse:return Nonedef allow_syncdb(self, db, model):"""Make sure that apps only appear in the related database.""""""确保这些应用程序只出现在相关的数据库中。"""if db in DATABASE_MAPPING.values():return DATABASE_MAPPING.get(model._meta.app_label) == dbelif model._meta.app_label in DATABASE_MAPPING:return Falsereturn Nonedef allow_migrate(self, db, app_label, model=None, **hints):"""Make sure the auth app only appears in the 'auth_db' database.""""""确保身份验证应用程序只出现在“authdb”数据库中。"""if db in DATABASE_MAPPING.values():return DATABASE_MAPPING.get(app_label) == dbelif app_label in DATABASE_MAPPING:return Falsereturn None

模型文件

data_***/models.py:

from django.db import modelsclass IntelligentTableView(models.Model):table_name = models.CharField(max_length=255, verbose_name='报表名称')center = models.CharField(max_length=50, verbose_name='所属中心')on_line = models.CharField(max_length=50, verbose_name='所属线条')remake = models.CharField(max_length=255, verbose_name='备注')create_name = models.CharField(max_length=50, verbose_name='创建人')create_date = models.DateTimeField(auto_now=True, verbose_name='创建时间')is_del = models.BooleanField(default=False, verbose_name='是否删除')class Meta:db_table = 'intelligent_table'   # 表名verbose_name = '智能报表'app_label = 'data_center'  # 指明app名称,用来对应app 和 数据库的map表

迁移文件

python manage.py makemigrations
python manage.py migrate

迁移成功,但是数据库没有生成对应的表,因为都会跑到默认数据库中

在这里插入图片描述

在迁移数据时 添加应用名称:

python manage.py migrate --database=data_center

在这里插入图片描述

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

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

相关文章

dataset.filter

dataset dataset.filter(Func) filter接收一个函数Func并将该函数作用于dataset的每个元素,根据返回值True或False保留或丢弃该元素,True保留该元素,False丢弃该元素

JQuery中的DOM操作

jQuery 中的 DOM 操作 一.介绍 1.概念:  •DOM(Document Object Model—文档对象模型):一种与浏览器, 平台, 语言无关的接口, 使用该接口可以轻松地访问页面中所有的标准组件。2.DOM操作的分类:–DOM Core: DOM Core 并不专属于 JavaScript…

Django——多个数据库

Django——多个数据库 官方文档:https://docs.djangoproject.com/en/3.2/topics/db/multi-db/ 主要介绍Django 对与多个数据库交互的支持。 1. 数据库服务器 DATABASES 在Django中使用多个数据库的第一步是告诉Django将要使用的数据库服务器。 这是通过使用 DAT…

聚焦第三届世界智能大会|大佬们讲了哪些干货?

文章来源:天津广播今天第三届世界智能大会举办两场主论坛高峰会柳传志、周鸿祎、王传福等各界大咖悉数亮相嘉宾围绕智能科技产业发展进行深层次探讨展开深度思想碰撞分享创新经验演讲的干货信息都在这了 ▼万钢:人工智能遇到“成长的烦恼”全国政协副主席…

tf.nn.embedding_lookup

用法: a1 tf.nn.embedding_lookup(a, index) index是索引,a是输入,通过index来选取a中对应的元素返回给a1,注意index是从0开始算起 例子: import tensorflow as tfa tf.constant([5, 6, 7, 8, 9]) index tf.con…

mac下配置eclipse的maven环境

转自:http://www.cnblogs.com/yqskj/archive/2013/03/30/2990292.html 1、下载maven的bin包,解压,配置到环境变量里面去 1)、首先到Maven官网下载安装文件,比如 ,下载文件为apache-maven-3.0.3-bin.tar.gz2…

装饰器详解

装饰器 1. 需求 需求:在func函数执行前输出before,执行后输出after。 def func():print("我是func函数")value [11,22,33,44]return valueresult func() print(result)1.1 闭包实现 # ********闭包实现******** def func():print("…

tf.sequence_mask

用法: sequence_mask(lengths,maxlenNone,dtypetf.bool,nameNone ) 函数参数 lengths:整数张量,其所有值小于等于maxlen。maxlen:标量整数张量,返回张量的最后维度的大小;默认值是lengths中的最大值。dt…

国产首款脑机编解码集成芯片发布

来源:科学网5月17日,由中电云脑(天津)科技有限公司(简称“中电云脑”)联合天津大学共同研发的国产首款脑机编解码集成芯片——“脑语者”在天津第三届世界智能大会上正式发布。这是一款拥有完全自主知识产权…

软件工程的认识

软件工程是一门研究用工程法构建和维护有效的、实用的和高品质的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式方面。在现代社会中,软件应用于多个方面。典型的软件有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译…

tf.while_loop

用法: final_state tf.while_loop(cond, loop_body, init_state) cond 是一个函数,负责判断继续执行循环的条件。loop_body 是每个循环体内执行的操作,负责对循环状态迸行更新。init_state 为循环的起始状态,它可以包含多个 T…

mysql 8.0.25 取巧解决修改密码报错问题

mysql修改密码 报错 # 修改密码 set password for rootlocalhostpassword(新密码);1.1 报错: ERROR 1064 (42000): You have an error in your SQL syntax;check the manual that corresponds to your MySQL server version for the right syntax to use near pas…

资金只够支撑10个月,自动驾驶致命事故重演:特斯拉陷入困境

来源:机器学习研究会订阅号特斯拉在上海的工厂正在快速建设过程中,然而最近马斯克的一封致员工信引发了人们对于这家车企的担忧。另一方面,同日曝光的 Model 3 自动驾驶致命事故又为新技术的前途蒙上了阴影。据路透社、Electrek 等媒体报道&a…

把WinRAR默认压缩格式换为ZIP

使用WinRAR的一个技巧,说实话,我并不喜欢WinRAR,不过不可否认这个软件有其方便的地方,在一些细节方面7Zip的确不如WinRAR做的好。 例如,WinRAR默认建立的压缩包都是RAR格式的,但我们希望默认都使用ZIP格式的…

颠覆性技术的兴起及其影响

来源:学习时报1990年代美国学者克里斯滕森提出“颠覆性技术”之后,这一“时髦”的概念经常出现在商业、军事等不同的学科和领域,对国家竞争力、经济、安全、国家关系等方面产生了深远影响。许多国家和地区都充分意识到了这一问题的重要性&…

tf.concat()

tf.concat(values,axis, nameconcat ) 作用: 在axis维度上对输入矩阵进行拼接 例子: import tensorflow as tfa tf.constant([[1, 2, 3], [4, 5, 6]]) b tf.constant([[7, 8, 9], [10, 11, 12]]) c tf.concat([a, b], axis0) d tf.concat([a, b]…

Windows Redis安装

Windows Redis安装 在 Windows 系统下安装 Redis 要比 Linux 系统安装稍微复杂一些。 下载地址:点击前往 解压文件,目录如下: 2.1 启动服务端程序 如上图所示,双击 Redis 服务端启动程序 redis-server.exe,看到以下…

Android Studio如何快速生成get,set,tostring,构造函数

刚开始使用Android Studio时,在创建一个javabean时,很习惯的在JavaBean类中,右键去找生成get,set等选项。但是很遗憾,找不到。 那这边如何快速的set,get或者生成构造函数,生成toString方法。 有…

python面试-2

python中的数据类类型 Python3 中有六个标准的数据类型: Number(数字)String(字符串)List(列表)Tuple(元组)Set(集合)Dictionary(字…

科幻变成现实?超导加速未来新科技

来源:未来产业促进会演绎inSite 第十二期节目超导:改变未来世界罗会仟,中国科学院物理研究所副研究员、科普作家、中国科学院青年创新促进会数理分会会长。获首届全国青年科学博客大赛 “最佳科学博客奖”、中国科普作家协会优秀科普作品金奖…