Skip to content

Commit

Permalink
Respect "null": false in options
Browse files Browse the repository at this point in the history
Closes #62
  • Loading branch information
aeneasr committed Dec 2, 2021
1 parent 6023280 commit 28843d7
Show file tree
Hide file tree
Showing 10 changed files with 12 additions and 11 deletions.
2 changes: 1 addition & 1 deletion translators/cockroach.go
Original file line number Diff line number Diff line change
Expand Up @@ -325,7 +325,7 @@ func (p *Cockroach) DropForeignKey(t fizz.Table) (string, error) {
func (p *Cockroach) buildAddColumn(c fizz.Column) string {
s := fmt.Sprintf("\"%s\" %s", c.Name, p.colType(c))

if c.Options["null"] == nil || c.Primary {
if ok, _ := c.Options["null"].(bool); !ok || c.Primary {
s = fmt.Sprintf("%s NOT NULL", s)
}
if c.Options["default"] != nil {
Expand Down
2 changes: 1 addition & 1 deletion translators/cockroach_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ PRIMARY KEY("uuid"),

res, _ := fizz.AString(`
create_table("users") {
t.Column("first_name", "string", {})
t.Column("first_name", "string", {"null":false})
t.Column("last_name", "string", {})
t.Column("email", "string", {"size":20})
t.Column("permissions", "jsonb", {"null": true})
Expand Down
2 changes: 1 addition & 1 deletion translators/mssqlserver.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ func (p *MsSqlServer) ChangeColumn(t fizz.Table) (string, error) {

cmds := make([]string, 0)
s := fmt.Sprintf("ALTER TABLE %s ALTER COLUMN %s %s", t.Name, c.Name, p.colType(c))
if c.Options["null"] == nil {
if ok, _ := c.Options["null"].(bool); !ok {
s = fmt.Sprintf("%s NOT NULL", s)
} else {
s = fmt.Sprintf("%s NULL", s)
Expand Down
2 changes: 1 addition & 1 deletion translators/mssqlserver_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ updated_at DATETIME NOT NULL
res, _ := fizz.AString(`
create_table("users") {
t.Column("first_name", "string", {})
t.Column("last_name", "string", {})
t.Column("last_name", "string", {"null": false})
t.Column("email", "string", {"size":20})
t.Column("permissions", "text", {"null": true})
t.Column("age", "integer", {"null": true, "default": 40})
Expand Down
2 changes: 1 addition & 1 deletion translators/mysql.go
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ func (p *MySQL) DropForeignKey(t fizz.Table) (string, error) {

func (p *MySQL) buildColumn(c fizz.Column) string {
s := fmt.Sprintf("`%s` %s", c.Name, p.colType(c))
if c.Options["null"] == nil || c.Primary {
if ok, _ := c.Options["null"].(bool); !ok || c.Primary {
s = fmt.Sprintf("%s NOT NULL", s)
}
if c.Options["default"] != nil {
Expand Down
2 changes: 1 addition & 1 deletion translators/mysql_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ PRIMARY KEY(` + "`id`" + `),
res, err := fizz.AString(`
create_table("users") {
t.Column("id", "integer", {"primary": true})
t.Column("first_name", "string", {})
t.Column("first_name", "string", {"null": false})
t.Column("last_name", "string", {})
t.Column("email", "string", {"size":20})
t.Column("permissions", "text", {"null": true})
Expand Down
4 changes: 2 additions & 2 deletions translators/postgres.go
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ func (p *Postgres) DropForeignKey(t fizz.Table) (string, error) {
func (p *Postgres) buildAddColumn(c fizz.Column) string {
s := fmt.Sprintf("\"%s\" %s", c.Name, p.colType(c))

if c.Options["null"] == nil || c.Primary {
if ok, _ := c.Options["null"].(bool); !ok || c.Primary {
s = fmt.Sprintf("%s NOT NULL", s)
}
if c.Options["default"] != nil {
Expand All @@ -191,7 +191,7 @@ func (p *Postgres) buildChangeColumn(c fizz.Column) string {
s := fmt.Sprintf("\"%s\" TYPE %s", c.Name, p.colType(c))

var sets []string
if c.Options["null"] == nil {
if ok, _ := c.Options["null"].(bool); !ok {
sets = append(sets, fmt.Sprintf("ALTER COLUMN \"%s\" SET NOT NULL", c.Name))
} else {
sets = append(sets, fmt.Sprintf("ALTER COLUMN \"%s\" DROP NOT NULL", c.Name))
Expand Down
3 changes: 2 additions & 1 deletion translators/postgres_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package translators_test
import (
"github.com/gobuffalo/fizz"
"github.com/gobuffalo/fizz/translators"
_ "github.com/jackc/pgx/v4/stdlib"
)

var _ fizz.Translator = (*translators.Postgres)(nil)
Expand All @@ -27,7 +28,7 @@ PRIMARY KEY("id"),
res, _ := fizz.AString(`
create_table("users") {
t.Column("id", "integer", {"primary": true})
t.Column("first_name", "string", {})
t.Column("first_name", "string", {"null": false})
t.Column("last_name", "string", {})
t.Column("email", "string", {"size":20})
t.Column("permissions", "jsonb", {"null": true})
Expand Down
2 changes: 1 addition & 1 deletion translators/sqlite.go
Original file line number Diff line number Diff line change
Expand Up @@ -376,7 +376,7 @@ func (p *SQLite) withForeignKeyPreservingTempTable(newTable fizz.Table, tableNam

func (p *SQLite) buildColumn(c fizz.Column) string {
s := fmt.Sprintf("\"%s\" %s", c.Name, p.colType(c))
if c.Options["null"] == nil {
if ok, _ := c.Options["null"].(bool); !ok {
s = fmt.Sprintf("%s NOT NULL", s)
}
if c.Options["default"] != nil {
Expand Down
2 changes: 1 addition & 1 deletion translators/sqlite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ func (p *SQLiteSuite) Test_SQLite_CreateTable() {
t.Column("permissions", "text", {"null": true})
t.Column("age", "integer", {"null": true, "default": 40})
t.Column("raw", "blob", {})
t.Column("into", "int", {})
t.Column("into", "int", {"null": false})
t.Column("flotante", "float", {})
t.Column("json", "json", {})
t.Column("bytes", "[]byte", {})
Expand Down

0 comments on commit 28843d7

Please sign in to comment.