首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将生产环境字段类型INT修改为BIGINT

介绍 改变数据类型是一个看起来很简单事情,但是如果表非常大或者有最小停机时间要求,又该如何处理那?这里我提供一个思路来解决这个问题。...这是一个订单输入表,由于客户活动,需要24小时插入。一旦强行修改字段必然导致停机。 本文描述了我如何计划和执行INT到BIGINT数据类型更改。...该技术在单独SQL服务器实例上创建表新副本,并使用BIGINT数据类型,然后使用对象级恢复将其移到生产数据库中。 评估可选方案 最为直接方式就是修改表字段类型。...请记住,并不是所有的索引都需要更改,因为您可以在两个不同tabl中重用相同名称。 建议:开发环境中可以把表进行压缩这样会小很多。 万事俱备,旦所有对象都被重命名,您可以删除触发器以重新打开表。...这种方法将停机时间可能9小时缩短到15分钟,并且大量密集工作都从生产实例中删除了。我没有看到使用对象级恢复对表恢复有多大影响。 总结 有许多方法可以将数据类型更改用于生产数据库。

5K80
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何将生产环境字段类型INT修改为BIGINT

    介绍 改变数据类型是一个看起来很简单事情,但是如果表非常大或者有最小停机时间要求,又该如何处理那?这里我提供一个思路来解决这个问题。...这是一个订单输入表,由于客户活动,需要24小时插入。一旦强行修改字段必然导致停机。 本文描述了我如何计划和执行INT到BIGINT数据类型更改。...该技术在单独SQL服务器实例上创建表新副本,并使用BIGINT数据类型,然后使用对象级恢复将其移到生产数据库中。 评估可选方案 最为直接方式就是修改表字段类型。...请记住,并不是所有的索引都需要更改,因为您可以在两个不同tabl中重用相同名称。 建议:开发环境中可以把表进行压缩这样会小很多。 万事俱备,旦所有对象都被重命名,您可以删除触发器以重新打开表。...这种方法将停机时间可能9小时缩短到15分钟,并且大量密集工作都从生产实例中删除了。我没有看到使用对象级恢复对表恢复有多大影响。 总结 有许多方法可以将数据类型更改用于生产数据库。

    3K10

    django:DateTimeField如何自动设置为当前时间并且能被修改 ——django日期时间字段使用

    创建djangomodel时,有DateTimeField、DateField和TimeField三种类型可以用来创建日期字段,其值分别对应着datetime()、date()、time()三中对象。...DateTimeField.auto_now 这个参数默认值为false,设置为true时,能够在保存该字段时,将其值设置为当前时间,并且每次修改model,都会自动更新。...需要注意是,设置该参数为true时,并不简单地意味着字段默认值为当前时间,而是指字段会被“强制”更新到当前时间,你无法程序中手动为字段赋值;如果使用django再带admin管理器,那么该字段在admin...admin.ModelAdmin): readonly_fields = ('save_date', 'mod_date',) admin.site.register(Tag, YourAdmin) 如何将创建时间设置为...实际场景中,往往既希望在对象创建时间默认被设置为当前值,又希望能在日后修改它。怎么实现这种需求呢? django中所有的model字段都拥有一个default参数,用来给字段设置默认值。

    7.2K80

    Django 和 Keystone.js 详细对比

    Django:特点:Django 自带一个强大 ORM,支持多种数据库(如 PostgreSQL、MySQL、SQLite 和 Oracle)。特性:模型定义清晰,支持复杂查询、关系和数据迁移。...特性:支持表单字段验证和错误处理。Django:特点:内置强大表单处理和验证系统,支持自动生成表单、字段验证和错误处理。...特性:Django Forms 提供了丰富字段类型、验证方法和自定义表单控件,便于处理用户输入和数据验证。4....Django:特点:内置强大用户认证和授权系统,支持用户注册、登录、密码重置和权限管理。特性:Django 认证系统可以轻松扩展,支持自定义用户模型、权限和组管理。...Graphene-Django 提供了简便 GraphQL API 构建方式,支持与 Django ORM 集成。6.

    14000

    Sentry 开发者贡献指南 - 数据库迁移

    NULL 添加具有默认值列 改变列类型 重命名Django 迁移是我们处理 Sentry 中数据库更改方式。...sentry django sqlmigrate 例如 sentry django sqlmigrate sentry 0003 生成迁移 这会根据您对模型所做更改自动为您生成迁移...下一阶段涉及代码库中删除对模型所有引用。所以我们这样做,然后我们生成一个迁移,迁移状态中删除模型,而不是数据库。...对于任何其他类型,最好前进路径通常是: 创建具有新类型列。 开始对新旧列进行双重写入。 回填并将旧列值转换为新列。 更改代码以使用新字段。 停止写入旧列并从代码中删除引用。 数据库中删除旧列。...有两种方法可以处理重命名列: 不要重命名 Postgres 中列。相反,只需在 Django重命名字段,并在定义中使用 db_column 将其设置为现有的列名,这样就不会中断。这是首选方法。

    3.6K20

    超越 REST

    通过允许 GraphQL 客户端“所用权限”(“full access”)自动生成 GraphQL 查询和 Graphile 生成突变(在所有表和视图上公开 CRUD 操作)来提高灵活性;然后在开发过程后期...,数据类型为 JSON: json 字段内部结构(hello world 和 2 这两个子字段)在生成 GraphQL 模式中是不透明。...单击 CustomType 将显示自定义类型字段及其注解: 请注意,在自定义类型中,第二个字段被命名为 field_2,但 Graphile 智能注解将该字段重命名为 field_two,通过 Graphile...另外,对这两个字段描述都被显示在生成 GraphQL 模式中。...通过从数据库自动生成大型 API 来提高灵活性 并在 Graphile 生成业务逻辑和数据类型之外,额外公开其他自定义业务逻辑和数据类型 这是一个替代之前使用 REST 实现内部 CRUD 工具可行解决方案

    3K20

    API接口架构REST vs GraphQL

    比如laravel,express,django,springboot 等,它们都提供了非常方便方法来实现 REST 接口。...在我们 GraphQL 模式中,我们将定义Article类型,该类型具有必需整数id字段和用于title、image和可选字符串字段description,如下所示: type Article {...反过来,这意味着 GraphQL 本质上是自记录。一旦字段类型或查询发生更改,基于架构文档可以自动更新。 没有版本控制 API 每次应用更改时,API 可能也需要更改。...例如,假设我们决定将实体中description字段重命名时候. REST 通过提供多个版本来处理这个问题,这对于 API 开发人员来说是很麻烦。...使用 GraphQL,可以模式中删除不推荐使用字段,而不会影响现有查询。这为应用程序提供了对新功能持续访问,并鼓励更清洁、更可维护代码。

    1.6K30

    生成代码, T 到 T1, T2, Tn —— 自动生成多个类型泛型

    生成代码, T 到 T1, T2, Tn —— 自动生成多个类型泛型 发布于 2018-01-31 05:38...更新于 2018-05-25 12:33 当你想写一个泛型 类型时候,是否想过两个泛型参数、三个泛型参数、四个泛型参数或更多泛型参数版本如何编写呢?...} 注意到类型泛型变成了多个,参数从一个变成了多个,返回值单个值变成了元组。 于是,怎么生成呢?...在这里填写工具 Key,那么一旦这个文件保存,就会运行自定义工具生成代码。 那么 Key 哪里来?这货居然是注册表拿!也就是说,如果要在团队使用,还需要写一个注册表项!...如果将传参改为自动寻找代码文件,将此工具发布到 NuGet,那么可以通过 NuGet 安装脚本将以上过程全自动化完成。

    1.4K20

    激荡二十年:HTTP API 变迁

    然而 OpenAPI 并不强制输入输出类型安全,这跟 UAPI 有同样问题:随着公司 OpenAPI spec 不断迭代,API 中某些新添加字段,很容易被忽略,日积月累下来,问题会越来越多。...这一次,我试图 OpenAPI v3 spec 出发,构建一切可以自动生成代码,甚至包括 API 测试。...虽然过去二十年,API 开发自动化程度已经大大提升,但我们还没有到达一个可以完全自动生成 API 阶段。这还怎么低代码?...字段选择语法,我可以使用一个 parser combinator(比如 Rust 下 nom)来解析它,这样就可以清晰地知道,字段如何重命名,以及字段来自于哪张表(如果有 JOIN 的话)。...这其中,80% 情况我们可以直接使用自动生成功能,剩下 20% 需要稍作定制便可完成。我希望,也坚信,未来 10 年,我们有望看到这样子 API 系统。

    1.8K30

    为什么我使用 GraphQL 而放弃 REST API?

    没有静态类型意味着要注意类型验证 无论如何努力避免这种情况,你迟早会遇到 JSON 属性拼写错误、发送或接收数据类型错误、字段丢失等问题。...有针对不同平台实现,也有许多可用开发工具,其中最著名是 GraphiQL,它捆绑了一个很好、具有自动完成功能 API 浏览器,以及一个文档浏览器,可以浏览 GraphQL 模式自动生成文档...要了解这些工具是如何工作,请查看 Star Wars API 示例,它可以作为 GraphiQL 在线演示。 能指定服务器请求对象字段让客户端可以根据需要只获取需要数据。...客户端库可以很容易地将 GraphQL 响应自动解包为所需类型对象实例,因为模式和查询可以提前知道响应形状。 GraphQL 是个时髦东西,是一种时尚,对吗?...PostGraphile 甚至还有模式文档这样东西,可以 Postgres 注释自动生成

    2.3K30

    JavaScript迁移到TypeScript,类型声明文件自动生成与中心化管理实践

    文件自动生成 TypeScript 类型声明文件流程,支持 Protobuf 文件变化触发类型声明文件自动更新。...当Protobuf 文件发生更改后触发生成 TypeScript类型文件自动化流水线,将更新后文件自动上传到@fw-types库里,然后触发 npm 发包流水线将新类型包上传到内部 Artifactory...由于我们期望使用interface语法定义类型,要求可以保留原始字段蛇形命名,同时能够生成Protobuf 定义依赖其他文件类型,最终选择proto-loader作为开发流程中生成工具。...架构设计 整体解决方案架构图如下图, @fw-types 代码仓库入口来看可以划分为两个部分,一个是由于Protobuf文件变化引发自动由Protobuf文件生成TypeScript文件并上传到...接口定义文件生成类型声明文件 这一阶段核心工作是由Protobuf文件生成TypeScript类型声明文件,将有变化类型声明文件自动上传到@fw-types 里。

    1.5K40

    GraphQL 查询你 Django 应用

    其次,它还包括一种服务端运行时,用于实现查询语句解析、数据类型定义。...TLDR REST 更多是 HTTP 协议出发一种约定协议,因为受制于 HTTP 协议本身设计,在表达能力上是弱于作为查询语言 GraphQL 。...作为后端开发,学习和使用 GraphQL 动力,更多是想将自己 CRUD 泥沼中拯救出来,将更多精力放在其他更重要技术上。...服务端落地:GraphQLDjango 想要将 GraphQL 引入现有的项目,我们需要安装两个基础依赖: graphene-django django-filter 二者分别负责两部分工作...(limit: 10 offset: 0){ id email } } } 自定义查询字段 Django 默认查询能力,对于一些特殊字段并不能完全覆盖需求,这时我们就需要针对这些内容手写一些处理逻辑

    2K60

    GraphQL与OpenAPI:数据治理优缺点

    OpenAPI OpenAPI 使用 JSON Schema 标准来定义数据类型和 API 端点數據驗證模型。与 GraphQL 一样,您也可以以联合方式管理 OpenAPI 端点。...每个端点通过 URL 方案表达与其他 OpenAPI 文档之间关系。历史上看,使用 JSON Schema 维护和演化大型统一数据模型一直很困难。...你必须通过创建标注为 x- 类型自定义字段,将自定义元数据添加到 OpenAPI 规范中。此约定有效地指示任何标准工具忽略这些字段。...五年前,认真对待 GraphQL 可能比较困难,但技术格局已经发生了改变。手动编写 GraphQL 解析器不在我愿望清单上;让这项任务可行自动 GraphQL。...有一些可信赖供应商拥有出色 GraphQL 自动化功能,这使得此方法变得可行且有吸引力。 OpenAPI、gRPC 和 API 网关供应商也是实用解决方案。

    10810

    GraphQL及元数据驱动架构在后端BFF中实践

    实际上在模块生成过程中存在诸多差异,比如以下两种差异: 字段拼接逻辑差异:比如以上图中两个团购货架团购标题为例,同样是标题,在丽人团购货架中展示规则是:[类型] + 团购标题,而在足疗团购货架展示规则是...基于这两点考虑,颗粒度定义如下: 取数单元:尽量只封装1个外部数据源,同时负责对外部数据源返回模型进行简化,这部分生成模型我们称之为取数模型。 展示单元:尽量只封装1个展示字段加工逻辑。...实现是基于反射源对象中读取查询字段。...2)类型转换优化 通过GraphQL查询引擎拿到GraphQL模型,和业务实现DataFetcher返回取数模型是同构,但是所有字段类型都会被转换成GraphQL内部类型。...因为GraphQL模型类似JSON模型,这种模型是缺少业务类型,业务开发直接使用起来非常麻烦。

    1.7K50

    我为什么要放弃RESTful,选择拥抱GraphQL

    那么有没有一种方案或者框架,可以使得在用到同一个领域模型(DO或者DTO)数据时,前端对于这个模型数据字段需求改动,后端可以根据前端改动和需要,自动适配,自动组装需要字段,返回给前端呢?...GraphQL 思考模式 使用GraphQL接口设计获取数据需要三步: GraphQL获取数据三步骤 首先要设计数据模型,用来描述数据对象,它作用可以看做是VO,用于告知GraphQL如何来描述定义数据...,为下一步查询返回做准备; 前端使用模式查询语言(Schema)来描述需要请求数据对象类型和具体需要字段(称之为声明式数据获取); 后端GraphQL通过前端传过来请求,根据需要,自动组装数据字段...对于数据模型抽象是通过类型(Type)来描述,每一个类型有若干字段(Field)组成,每个字段又分别指向某个类型(Type)。这很像Java、C#中类(Class)。...例如定义了一个名为User对象类型,并对其字段进行定义和施加限制条件: User字段控制 那么,返回数据时,像下面这种情况就是不允许: 错误表示 Graphql会根据Schema Type来自动返回正确数据

    2.4K40

    完整 Django 零基础教程|初学者指南 - 第 3 部分 转自:维托尔·弗雷塔斯

    我们需要找到一种方法来区分普通用户和管理员用户,因为只有管理员才能创建新板。下面概述了我们主要用例和每种类型用户角色: ? 用例图 类图 用例图中,我们可以开始考虑我们项目的实体 。...基本类图 花时间思考模型如何相互关联也很重要。实线告诉我们是,在Topic 中 ,我们需要有一个字段来标识它属于哪个Board 。...相反,我们只是将其重命名为 topics,使其感觉更自然。 在 Post模型中,该 updated_by字段设置 related_name='+'. ...这告诉 Django 我们不需要这种反向关系,所以它会忽略它。 您可以在下面看到类图和使用 Django 生成模型源代码之间比较。绿线代表我们如何处理反向关系。 ?...类图模型定义 此时,您可能会问自己:“主键/ID 怎么样”?如果我们不为模型指定主键,Django自动为我们生成它。所以我们现在很好。在下一节中,您将更好地了解它是如何工作

    2.2K40

    GraphQL

    那么有没有一种方案或者框架,可以使得在用到同一个领域模型(DO或者DTO)数据时,前端对于这个模型数据字段需求改动,后端可以根据前端改动和需要,自动适配,自动组装需要字段,返回给前端呢?...GraphQL 思考模式 使用GraphQL接口设计获取数据需要三步: GraphQL获取数据三步骤 首先要设计数据模型,用来描述数据对象,它作用可以看做是VO,用于告知GraphQL如何来描述定义数据...,为下一步查询返回做准备; 前端使用模式查询语言(Schema)来描述需要请求数据对象类型和具体需要字段(称之为声明式数据获取); 后端GraphQL通过前端传过来请求,根据需要,自动组装数据字段...对于数据模型抽象是通过类型(Type)来描述,每一个类型有若干字段(Field)组成,每个字段又分别指向某个类型(Type)。这很像Java、C#中类(Class)。...例如定义了一个名为User对象类型,并对其字段进行定义和施加限制条件: User字段控制 那么,返回数据时,像下面这种情况就是不允许: 错误表示 Graphql会根据Schema Type来自动返回正确数据

    2.6K65

    为什么我劝你放弃了Restful API?

    ,后端可以根据前端改动和需要,自动适配,自动组装需要字段,返回给前端呢?...GraphQL 思考模式 使用GraphQL接口设计获取数据需要三步: 首先要设计数据模型,用来描述数据对象,它作用可以看做是VO,用于告知GraphQL如何来描述定义数据,为下一步查询返回做准备;...前端使用模式查询语言(Schema)来描述需要请求数据对象类型和具体需要字段(称之为声明式数据获取); 后端GraphQL通过前端传过来请求,根据需要,自动组装数据字段,返回给前端。...对于数据模型抽象是通过类型(Type)来描述,每一个类型有若干字段(Field)组成,每个字段又分别指向某个类型(Type)。这很像Java、C#中类(Class)。...例如定义了一个名为User对象类型,并对其字段进行定义和施加限制条件: 那么,返回数据时,像下面这种情况就是不允许Graphql会根据Schema Type来自动返回正确数据: 其他类型 除了上面的

    2.9K20
    领券