beego orm自动建表时字段default值不设置的解决办法

在使用beego的orm建表时,我的模型是这样建立的

type Test struct {
	Id      int64
	Name    string
	Sex     int64 `orm:"default(1)"`
	Age     int64
	Content string `orm:"default(‘‘)"`
}

content字段设置默认为空,Sex字段设置默认为1,那么生成的表确并没有default,这不科学,于是我翻了下源码,发现设置default的这段被注释了,位置在 github.com/astaxie/beego/orm/cmd_utils.go

155 // if fi.initial.String() != "" {
156 // 	column += " DEFAULT " + fi.initial.String()
157 // }

这三行注释了,果断打开之(哥测了,打开没分险,大胆的干吧),欧克,建表的时候解决了字段default问题了

接下来,如果已经有了表,然后要增加一个字段的时候,仍然会遇到字段没有default的情况,我们加一下,还是这个文件,在第107行

if fi.initial.String() != "" {
	typ += " DEFAULT " + fi.initial.String()
}

增加字段的时候就欧了,修改字段的beego没有做,希望能整个

时间: 2024-08-10 19:16:47

beego orm自动建表时字段default值不设置的解决办法的相关文章

关于数据库建表时字段数据类型

基础: char.varchar.text和nchar.nvarchar.ntext的区别 1.CHAR.CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充. 2.VARCHAR.存储变长数据,但存储效率没有CHAR高.如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的.VARCHAR类型的实际长度是它的值的实际

Hibernate-----Hibernate自动建表

方法一:在hibernate.cfg.xml配置文件中配置 <property name="hibernate.hbm2ddl.auto">create</property> 要执行检索.更新等操作时才会自动建表 hibernate.hbm2ddl.auto值: create                     每次加载hibernate时重新创建数据库表结构(这将导致数据库表数据丢失) create-drop           每次加载hibernate

Activiti+oracle 启动项目时不能自动建表或更新表的问题分析及解决办法

现象描述:按照正常配置,第一次启动时不能自动建表 关键配置片段如下: <bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration"> <property name="dataSource" ref="dataSource" /> <property name=&q

借助hibernate自动建表

? Hibernate的ORM关系映射底层框架,为我们的开发提供了很多便利,可以说是一个非常棒的J2EE框架,我这里也不 切入主题,逆向思维,借助hibernate实现快速开发.前提,打算在项目里使用hibernate框架开发底层.仅此而已. 一般情况下,开始一个项目,首先是系统的分析需求,然后就是设计数据库,然后找个数据库客户端开始建表,建字段这是个 漫长的过程,然后开工.如果使用hibernate框架(我当然非常推荐使用),jdbc有点麻烦,很多重复的体力活,也不易维护 拓展.当然我也不否定

[转]Hibernate不能自动建表解决办法及Hibernate不同数据库的连接及SQL方言

最近开始学Hibernate,看的是李刚的那本<轻量级java ee企业应用实战>.头一个hibernate程序,我原原本本的按照书上例子写下来,同时只是改动了些mysql的连接参数,并且在mysql中新建了一个hibernate数据库,仅此而已.然而预想不到的事情发生了……程序写好之后,运行,报错Hibernate: insert into news_table (title, content) values (?, ?) Exception in thread "main&quo

Spring整合Hibernate中自动建表

Spring整合Hibernate中自动建表 博客分类: JavaEE Java代码   <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> <

配置hibernate根据实体类自动建表功能

Hibernate支持自动建表,在开发阶段很方便,可以保证hbm与数据库表结构的自动同步. 如何使用呢?很简单,只要在hibernate.cfg.xml里加上如下代码 Xml代码<property name="hbm2ddl.auto">update</property>     update:表示自动根据model对象来更新表结构,启动hibernate时会自动检查数据库,如果缺少表,则自动建表:如果表里缺少列,则自动添加列. 还有其他的参数: create:

MySQL建表时列名同保留字重复问题解决办法

建表时遇到遇到属性名同MySQL的保留字相同导致不能建表的问题,如下SQL语句: CREATE TABLE TBL_ACCOUNT_FROZEN_RECORD ( ID BIGINT NOT NULL AUTO_INCREMENT, TRADE_FLOW_ID VARCHAR(60) NOT NULL, ACCOUNT_NO VARCHAR(32) NOT NULL, INITIATOR VARCHAR(16) NOT NULL, OPERATE_TYPE VARCHAR(32) NOT NUL

Hibernate中的自动建表及11选5平台开发

Hibernate支持自动建表.11选5平台开发(企 娥:217 1793 408)开发阶段,可通过在hibernate.cfg.xml中添加常量值来设置自动建表. 以mysql为例,只需要在配置文件中添加如下语句即可. <property name="hbm2ddl.auto"> 参数 </property> hibernate框架为参数提供了四个可选项(update.create.create-drop.validate),我们根据需求选择. 四个参数意义: