From 3fcaf80ca4c2f163c0e8c55ee312db2e81b0c159 Mon Sep 17 00:00:00 2001 From: Ariel Mashraki Date: Sun, 8 Sep 2019 06:27:26 -0700 Subject: [PATCH] entc/migrate: add an option to dump schema changes Reviewed By: alexsn Differential Revision: D17253145 fbshipit-source-id: 32640e60a8e149ac8774384db8e2ece29b9fec24 --- entc/gen/bindata.go | 8 ++++---- entc/gen/template/migrate/migrate.tmpl | 18 ++++++++++++++++++ entc/integration/ent/migrate/migrate.go | 19 +++++++++++++++++++ .../migrate/entv1/migrate/migrate.go | 19 +++++++++++++++++++ .../migrate/entv2/migrate/migrate.go | 19 +++++++++++++++++++ entc/load/bindata.go | 2 +- examples/edgeindex/ent/migrate/migrate.go | 19 +++++++++++++++++++ examples/m2m2types/ent/migrate/migrate.go | 19 +++++++++++++++++++ examples/m2mbidi/ent/migrate/migrate.go | 19 +++++++++++++++++++ examples/m2mrecur/ent/migrate/migrate.go | 19 +++++++++++++++++++ examples/o2m2types/ent/migrate/migrate.go | 19 +++++++++++++++++++ examples/o2mrecur/ent/migrate/migrate.go | 19 +++++++++++++++++++ examples/o2o2types/ent/migrate/migrate.go | 19 +++++++++++++++++++ examples/o2obidi/ent/migrate/migrate.go | 19 +++++++++++++++++++ examples/o2orecur/ent/migrate/migrate.go | 19 +++++++++++++++++++ examples/traversal/ent/migrate/migrate.go | 19 +++++++++++++++++++ 16 files changed, 270 insertions(+), 5 deletions(-) diff --git a/entc/gen/bindata.go b/entc/gen/bindata.go index 65fa874ea..899dec4b0 100644 --- a/entc/gen/bindata.go +++ b/entc/gen/bindata.go @@ -741,7 +741,7 @@ func templateEntTmpl() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "template/ent.tmpl", size: 3565, mode: os.FileMode(420), modTime: time.Unix(1567523574, 0)} + info := bindataFileInfo{name: "template/ent.tmpl", size: 3565, mode: os.FileMode(420), modTime: time.Unix(1567935214, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -801,7 +801,7 @@ func templateImportTmpl() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "template/import.tmpl", size: 752, mode: os.FileMode(420), modTime: time.Unix(1567330547, 0)} + info := bindataFileInfo{name: "template/import.tmpl", size: 752, mode: os.FileMode(420), modTime: time.Unix(1567935214, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -826,7 +826,7 @@ func templateMetaTmpl() (*asset, error) { return a, nil } -var _templateMigrateMigrateTmpl = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\x55\x41\x6f\x1b\x37\x13\x3d\x8b\xbf\xe2\x7d\x8b\xaf\xad\x14\x28\x54\xe2\x9e\x6a\x24\x07\xc3\x76\x0b\x01\xad\x9a\x22\x31\xda\x63\x28\x72\x56\x4b\x84\x22\x37\xe4\xac\x24\x63\xa1\xff\x5e\x90\xbb\xb2\xa5\xa4\x05\x7a\x68\x75\x11\x34\x9c\x79\x8f\xef\x0d\x67\xd4\xf7\x8b\x17\xe2\x36\xb4\x8f\xd1\x6e\x1a\xc6\xd5\xab\xd7\x3f\xbc\x6c\x23\x25\xf2\x8c\x1f\x95\xa6\x75\x08\x9f\xb0\xf4\x5a\xe2\xc6\x39\x94\xa4\x84\x7c\x1e\x77\x64\xa4\xf8\xd0\xd8\x84\x14\xba\xa8\x09\x3a\x18\x82\x4d\x70\x56\x93\x4f\x64\xd0\x79\x43\x11\xdc\x10\x6e\x5a\xa5\x1b\xc2\x95\x7c\x75\x3a\x45\x1d\x3a\x6f\x84\xf5\xe5\xfc\xe7\xe5\xed\xfd\xea\xfd\x3d\x6a\xeb\x08\x63\x2c\x86\xc0\x30\x36\x92\xe6\x10\x1f\x11\x6a\xf0\x19\x19\x47\x22\x29\x5e\x2c\x8e\x47\x21\xfa\x1e\x86\x6a\xeb\x09\xd5\xd6\x6e\xa2\x62\xaa\x30\xc4\x5f\x62\x6f\xb9\x01\x1d\x98\xbc\xc1\xff\x51\xbd\x53\xfa\x93\xda\x50\x75\x96\xf9\xf2\x78\x14\x93\xbe\x07\xd3\xb6\x75\x8a\x09\x55\x43\xca\x50\xac\x20\x33\x4a\xdf\x23\xd7\x66\x3c\xbb\x6d\x43\x64\x4c\xc5\xa4\xd2\xc1\x33\x1d\xb8\x12\x93\xaa\xde\x72\x25\xc4\xa4\xda\x58\x6e\xba\xb5\xd4\x61\xbb\xa8\x47\xe3\xac\xd7\xdd\x5a\x71\x88\x0b\xf2\xbc\x30\x56\x39\xd2\xa5\xe6\x9f\xe6\x2e\xd2\x67\xb7\x48\xba\xa1\xad\xaa\xc4\x4c\x88\x9d\x8a\x99\x7e\xb1\xc0\xef\x96\x9b\x9f\x5c\x58\x2b\xf7\xe0\xed\xe7\x8e\x96\x77\x48\xc4\xa9\x38\xd7\x79\xbb\xa3\x98\x94\x83\x35\x09\xa1\x65\x1b\x7c\x02\x87\x72\x38\xe8\xb6\xc1\xcb\x82\xb3\x1c\x6d\x1d\xb2\x72\xfb\xc8\xab\xb5\x23\x33\x47\x7e\x02\x4f\xd9\xd8\x5b\xe7\xa0\x9c\x0b\x3a\x7b\xa4\xf0\xfa\xcd\x9b\xef\xaf\x10\x95\xdf\x50\x01\xaa\xc3\xd0\xea\x42\x59\x83\x94\x6e\x32\x82\xe5\x47\x4c\x39\x23\xce\x06\xc2\x55\x60\x02\x37\x8a\x2f\x78\xb5\xf2\x3e\x30\xd6\x04\xd5\xb6\xce\x92\x41\xf0\x28\x65\x69\x48\x56\x2e\x92\x32\x8f\xa0\x83\x4d\x2c\xc5\xe4\x2f\xf4\xbf\xc5\xe0\x94\xfc\xfa\xec\xc9\xb2\xbb\x18\xda\xdb\xe0\xba\xad\x7f\xb6\xcb\xc4\xd0\x42\x0f\xc1\xf1\x3a\xff\x86\x57\x05\x36\x38\x33\x42\xa7\x02\x51\xb4\xec\x29\x12\xba\x3c\x21\xd9\xb4\x75\xe0\x06\xb5\x25\x67\x12\x94\x37\x20\xb3\xa1\x24\x51\x26\xcb\x50\xad\x3a\xc7\xa5\x79\xb5\x72\x89\x46\xe5\x67\x32\x2e\x54\x3f\xc7\x2f\x14\x2f\xbd\xa1\xc3\x17\x82\x6d\x89\xfd\x17\x7a\x0b\x32\x7d\xa9\x77\x98\x50\x73\x9a\xee\xf1\xd2\x7f\x2f\xf3\xe2\xa9\x74\xa5\x8f\xd0\xc1\x27\x8e\xca\x7a\x4e\x50\x67\x98\x5d\xb2\x7e\x83\x8f\x0f\xab\xe5\x6f\x0f\xf7\x58\xae\xee\xee\xff\xf8\x38\x2f\x10\xd9\x50\x6e\x28\x52\x1d\x22\xcd\x61\xf9\xbb\xbc\xbd\x74\xd8\x6e\xc9\x1b\x32\x99\x70\xd0\x74\xa1\x94\x03\x36\xc4\xd8\x86\x38\xbe\x6d\x47\x07\xbb\xb6\x2e\x3f\xe6\x8b\xfb\x43\x37\x79\x00\xd2\x59\x5b\x06\xaf\xbf\xea\x4a\x09\xe7\x11\x5e\x2c\xf0\x7e\xa8\xb5\x43\x37\x6e\xde\x2d\xcb\x3b\xd0\x91\x14\x5b\xbf\x99\x9f\x8c\xf5\x9b\x72\xfd\xec\x6b\x5b\x7e\x9c\x30\x05\x3f\xb6\x74\x42\x49\x1c\x3b\xcd\xe8\xc5\xc4\xc4\x1d\x4e\x9f\x71\x7f\xc8\xbb\x98\x57\x81\x98\x3c\xad\x84\xe5\x1d\xd6\x21\x38\x71\x2c\x37\x59\xd1\x7e\x84\x29\xec\x94\xa0\xe0\x69\xff\xa4\xce\x59\xf2\x2c\x45\xdd\x79\xfd\x9c\x3b\xcd\x44\x97\x04\x33\xbc\x18\x71\x7a\x44\xe2\x2e\x7a\x7c\x3b\x04\x7a\x13\x77\xd7\x30\x71\x77\xc4\x40\x79\x5b\x88\x9e\xf9\x9c\x3b\xb1\x45\x1a\x76\x7b\x1a\x09\xa7\xe9\x84\x3a\x1b\xab\xa6\x9a\x0f\x18\x57\xaf\xbc\x1d\xbe\xe7\xb9\x69\x09\x52\xca\xd1\x9d\x5f\x86\xc5\xfe\x6b\x69\xe5\x0c\x14\x63\x88\xd9\x9e\x71\xe1\xcf\x73\x04\xd7\x4f\x0d\x5a\xd1\x7e\xac\x98\x26\x69\xe2\x6e\xc0\x93\x52\xce\xc4\xc4\xd6\x25\xf9\x7f\x6f\xe1\xad\xcb\x18\x93\x51\x5c\xbd\x65\x79\x9f\x81\xeb\x69\x95\xd7\xf5\x88\x7d\x8d\x6f\x76\x55\x21\x98\x89\xc9\x51\x9c\xb2\xc7\x53\xf9\x2c\x62\x8e\x0f\x65\xb7\x15\x9a\xb3\xff\x98\x3f\x03\x00\x00\xff\xff\x4c\x62\x99\x91\x8e\x07\x00\x00") +var _templateMigrateMigrateTmpl = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xc4\x56\xc1\x8e\xdb\x36\x10\x3d\x8b\x5f\x31\x15\xda\xd4\x0e\x1c\x2a\x49\x4f\x75\xb3\x87\x74\x77\x53\x18\x68\xdd\x14\x9b\x20\x3d\x86\x26\x47\x12\x11\x8a\x54\xc8\x91\xed\x85\xe1\x7f\x2f\x48\x4a\x5e\x3b\x49\xd1\x1c\x5a\x74\x2f\xc2\x92\xc3\xf7\xf8\xde\x1b\xce\xee\xe1\x50\x3d\x66\xd7\xae\xbf\xf7\xba\x69\x09\x9e\x3f\x7d\xf6\xe3\x93\xde\x63\x40\x4b\xf0\x4a\x48\xdc\x38\xf7\x01\x56\x56\x72\x78\x69\x0c\xa4\xa2\x00\x71\xdf\x6f\x51\x71\xf6\xa6\xd5\x01\x82\x1b\xbc\x44\x90\x4e\x21\xe8\x00\x46\x4b\xb4\x01\x15\x0c\x56\xa1\x07\x6a\x11\x5e\xf6\x42\xb6\x08\xcf\xf9\xd3\x69\x17\x6a\x37\x58\xc5\xb4\x4d\xfb\xbf\xae\xae\x6f\xd7\x77\xb7\x50\x6b\x83\x30\xae\x79\xe7\x08\x94\xf6\x28\xc9\xf9\x7b\x70\x35\xd0\x19\x19\x79\x44\xce\x1e\x57\xc7\x23\x63\x87\x03\x28\xac\xb5\x45\x28\x3b\xdd\x78\x41\x58\x42\x5e\x7f\x02\x3b\x4d\x2d\xe0\x9e\xd0\x2a\xf8\x16\xca\xd7\x42\x7e\x10\x0d\x96\x67\x95\x4f\x8e\x47\x56\x1c\x0e\x40\xd8\xf5\x46\x10\x42\xd9\xa2\x50\xe8\x4b\xe0\x11\xe5\x70\x80\x78\x36\xe2\xe9\xae\x77\x9e\x60\xc6\x8a\x52\x3a\x4b\xb8\xa7\x92\x15\x65\xdd\x51\xc9\x58\x51\x36\x9a\xda\x61\xc3\xa5\xeb\xaa\x7a\x34\x4e\x5b\x39\x6c\x04\x39\x5f\xa1\xa5\x4a\x69\x61\x50\xa6\x33\x5f\x5b\x5b\x85\x8f\xa6\x0a\xb2\xc5\x4e\x94\x6c\xce\xd8\x56\xf8\x48\x5f\x55\xf0\x4e\x53\xfb\x8b\x71\x1b\x61\xde\x5a\xfd\x71\xc0\xd5\x0d\x04\xa4\x90\x9c\x1b\xac\xde\xa2\x0f\xc2\x80\x56\x01\x5c\x4f\xda\xd9\x00\xe4\xd2\x66\xd6\xad\x9d\xe5\x09\x67\x35\xda\x9a\xab\x62\x7c\x68\xc5\xc6\xa0\x5a\x40\x6c\x81\x53\x35\xec\xb4\x31\x20\x8c\x71\x32\x7a\x24\xe0\xd9\x8b\x17\x3f\x3c\x07\x2f\x6c\x83\x09\xa8\x76\x39\xea\x44\x59\x03\x0a\xd9\x46\x04\x4d\xf7\x30\xa3\x88\x38\xcf\x84\x6b\x47\x08\xd4\x0a\xba\xe0\x95\xc2\x5a\x47\xb0\x41\x10\x7d\x6f\x34\x2a\x70\x16\xd2\xb1\x90\x8b\x85\xf1\x28\xd4\x3d\xe0\x5e\x07\xe2\xac\xf8\x82\xfe\x2b\xc8\x4e\xf1\xcf\xf7\x4e\x96\xdd\x78\xd7\x5f\x3b\x33\x74\xf6\xc1\x2e\xe5\x5d\x0f\x32\x2f\x8e\xd7\xf9\x37\xbc\x4a\xb0\xce\xa8\x11\x3a\x24\x88\xa4\x65\x87\x1e\x61\x88\x2f\x24\x9a\xb6\x71\xd4\x42\xad\xd1\xa8\x00\xc2\x2a\x40\xd5\x60\xe0\x90\x5e\x96\xc2\x5a\x0c\x86\x52\x78\xb5\x30\x01\x47\xe5\x67\x32\x2e\x54\x3f\xac\x5f\x28\x5e\x59\x85\xfb\x4f\x04\xeb\xb4\xf6\x5f\xe8\x4d\xc8\xf8\xa9\xde\xfc\x42\xd5\xf4\xba\xc7\x4b\xff\xbd\xcc\x8b\x56\x19\x52\x8e\x20\x9d\x0d\xe4\x85\xb6\x14\x40\x9c\x61\x0e\x41\xdb\x06\xde\xbf\x5d\xaf\xfe\x78\x7b\x0b\xab\xf5\xcd\xed\x9f\xef\x17\x09\x22\x1a\x4a\x2d\x7a\xac\x9d\xc7\x05\x68\xfa\x3e\x4e\x2f\xe9\xba\x0e\xad\x42\x15\x09\xb3\xa6\x0b\xa5\xe4\xa0\x41\x82\xce\xf9\xb1\xb7\x0d\xee\xf5\x46\x9b\xd8\xcc\x17\xf7\x07\xd9\xc6\x07\x10\xce\x62\xc9\x5e\x7f\x96\x4a\x5a\x8e\x4f\xb8\xaa\xe0\x2e\x9f\xd5\x39\x8d\x97\xaf\x57\xa9\x0f\xa4\x47\x41\xda\x36\x8b\xc9\x58\xdb\xa4\xeb\x47\x5f\xfb\xf4\xcb\x84\xc9\xe8\xbe\xc7\x09\x25\x90\x1f\x24\xc1\x81\x15\xca\x6f\x61\xfa\x19\xe7\x07\xbf\xf1\x71\x14\xb0\xe2\x34\x12\x56\x37\xb0\x71\xce\xb0\x63\xba\xc9\x1a\x77\x23\x4c\x62\xc7\x00\x02\x2c\xee\x4e\xea\x8c\x46\x4b\x9c\xd5\x83\x95\x0f\xb5\xb3\x48\x74\x49\x30\x87\xc7\x23\xce\x01\x3c\xd2\xe0\x2d\x3c\xca\x0b\x07\xe5\xb7\x4b\x50\x7e\x7b\x84\x4c\x79\x9d\x88\x1e\xf8\x8c\x99\xd8\x3c\xe6\xd9\x1e\x46\xc2\x59\x98\x50\xe7\xe3\xa9\x99\xa4\x3d\x8c\xa3\x97\x5f\xe7\xef\x22\x86\x16\x80\x73\x3e\xba\xf3\x5b\x1e\xec\xbf\xa7\x28\xe7\x80\xde\x3b\x1f\xed\x19\x07\xfe\x22\xae\xc0\xf2\x14\xd0\x1a\x77\xe3\x89\x59\xe0\xca\x6f\x33\x1e\xe7\x7c\xce\x0a\x5d\xa7\xe2\x6f\xae\xc0\x6a\x13\x31\x8a\x51\x5c\xdd\x11\xbf\x8d\xc0\xf5\xac\x8c\xe3\x7a\xc4\x5e\xc2\x77\xdb\x32\x11\xcc\x59\x71\x64\x53\xf5\xb8\xcb\x1f\x44\x2c\xe0\x4d\x9a\x6d\x89\x26\xfb\xf2\xce\x6b\xc2\x37\x0e\x76\xf1\x1b\xbe\xd0\x63\xb1\x2b\x77\xa0\x6d\x20\x14\x2a\x8e\x58\x3f\x58\x1b\xfb\x82\x5a\xec\x40\x34\x22\x6e\xe5\xf7\x2d\x48\x6c\x44\x7c\x45\x55\x15\xa1\x27\x1d\xcb\xab\x29\xd1\xbb\xb1\x39\x33\xe7\x6c\xb2\xf4\x67\x21\x3f\x34\x3e\xfe\x61\x9e\xcd\x17\xe0\x02\xbf\x23\xe5\x06\x9a\xff\x74\x69\x43\x55\x15\x85\x71\x0d\x7f\x25\x48\x98\x59\x52\x1b\x59\x8e\x91\xee\xb3\xe4\x4e\x1c\x5f\x8a\x6e\x07\xda\xe5\x5b\xf8\xaf\xce\x31\x76\xdf\xf2\x0a\x1e\x85\x33\x0d\xb9\x0b\x63\x40\x19\x6c\x09\xbb\x05\x2b\x8a\xbc\xbc\x84\x1c\x6c\x8a\xe4\x9f\xbb\xe0\x7f\xea\x81\xd3\xff\x19\x7f\x05\x00\x00\xff\xff\xe0\x03\x68\x5f\x92\x09\x00\x00") func templateMigrateMigrateTmplBytes() ([]byte, error) { return bindataRead( @@ -841,7 +841,7 @@ func templateMigrateMigrateTmpl() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "template/migrate/migrate.tmpl", size: 1934, mode: os.FileMode(420), modTime: time.Unix(1567330577, 0)} + info := bindataFileInfo{name: "template/migrate/migrate.tmpl", size: 2450, mode: os.FileMode(420), modTime: time.Unix(1567946944, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/entc/gen/template/migrate/migrate.tmpl b/entc/gen/template/migrate/migrate.tmpl index 1c58eb18e..7cd415e7c 100644 --- a/entc/gen/template/migrate/migrate.tmpl +++ b/entc/gen/template/migrate/migrate.tmpl @@ -54,4 +54,22 @@ func (s *Schema) Create(ctx context.Context, opts ...schema.MigrateOption) error } return migrate.Create(ctx, Tables...) } + +// WriteTo writes the schema changes to w instead of running them against the database. +// +// if err := client.Schema.WriteTo(context.Background(), os.Stdout); err != nil { +// log.Fatal(err) +// } +// +func (s *Schema) WriteTo(ctx context.Context, w io.Writer, opts ...schema.MigrateOption) error { + drv := &schema.WriteDriver{ + Writer: w, + Driver: s.drv, + } + migrate, err := schema.NewMigrate(drv, opts...) + if err != nil { + return fmt.Errorf("ent/migrate: %v", err) + } + return migrate.Create(ctx, Tables...) +} {{ end }} \ No newline at end of file diff --git a/entc/integration/ent/migrate/migrate.go b/entc/integration/ent/migrate/migrate.go index 9099e73cb..7991000b1 100644 --- a/entc/integration/ent/migrate/migrate.go +++ b/entc/integration/ent/migrate/migrate.go @@ -9,6 +9,7 @@ package migrate import ( "context" "fmt" + "io" "github.com/facebookincubator/ent/dialect" "github.com/facebookincubator/ent/dialect/sql/schema" @@ -50,3 +51,21 @@ func (s *Schema) Create(ctx context.Context, opts ...schema.MigrateOption) error } return migrate.Create(ctx, Tables...) } + +// WriteTo writes the schema changes to w instead of running them against the database. +// +// if err := client.Schema.WriteTo(context.Background(), os.Stdout); err != nil { +// log.Fatal(err) +// } +// +func (s *Schema) WriteTo(ctx context.Context, w io.Writer, opts ...schema.MigrateOption) error { + drv := &schema.WriteDriver{ + Writer: w, + Driver: s.drv, + } + migrate, err := schema.NewMigrate(drv, opts...) + if err != nil { + return fmt.Errorf("ent/migrate: %v", err) + } + return migrate.Create(ctx, Tables...) +} diff --git a/entc/integration/migrate/entv1/migrate/migrate.go b/entc/integration/migrate/entv1/migrate/migrate.go index 9099e73cb..7991000b1 100644 --- a/entc/integration/migrate/entv1/migrate/migrate.go +++ b/entc/integration/migrate/entv1/migrate/migrate.go @@ -9,6 +9,7 @@ package migrate import ( "context" "fmt" + "io" "github.com/facebookincubator/ent/dialect" "github.com/facebookincubator/ent/dialect/sql/schema" @@ -50,3 +51,21 @@ func (s *Schema) Create(ctx context.Context, opts ...schema.MigrateOption) error } return migrate.Create(ctx, Tables...) } + +// WriteTo writes the schema changes to w instead of running them against the database. +// +// if err := client.Schema.WriteTo(context.Background(), os.Stdout); err != nil { +// log.Fatal(err) +// } +// +func (s *Schema) WriteTo(ctx context.Context, w io.Writer, opts ...schema.MigrateOption) error { + drv := &schema.WriteDriver{ + Writer: w, + Driver: s.drv, + } + migrate, err := schema.NewMigrate(drv, opts...) + if err != nil { + return fmt.Errorf("ent/migrate: %v", err) + } + return migrate.Create(ctx, Tables...) +} diff --git a/entc/integration/migrate/entv2/migrate/migrate.go b/entc/integration/migrate/entv2/migrate/migrate.go index 9099e73cb..7991000b1 100644 --- a/entc/integration/migrate/entv2/migrate/migrate.go +++ b/entc/integration/migrate/entv2/migrate/migrate.go @@ -9,6 +9,7 @@ package migrate import ( "context" "fmt" + "io" "github.com/facebookincubator/ent/dialect" "github.com/facebookincubator/ent/dialect/sql/schema" @@ -50,3 +51,21 @@ func (s *Schema) Create(ctx context.Context, opts ...schema.MigrateOption) error } return migrate.Create(ctx, Tables...) } + +// WriteTo writes the schema changes to w instead of running them against the database. +// +// if err := client.Schema.WriteTo(context.Background(), os.Stdout); err != nil { +// log.Fatal(err) +// } +// +func (s *Schema) WriteTo(ctx context.Context, w io.Writer, opts ...schema.MigrateOption) error { + drv := &schema.WriteDriver{ + Writer: w, + Driver: s.drv, + } + migrate, err := schema.NewMigrate(drv, opts...) + if err != nil { + return fmt.Errorf("ent/migrate: %v", err) + } + return migrate.Create(ctx, Tables...) +} diff --git a/entc/load/bindata.go b/entc/load/bindata.go index 12845759d..baaa3a055 100644 --- a/entc/load/bindata.go +++ b/entc/load/bindata.go @@ -102,7 +102,7 @@ func schemaGo() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "schema.go", size: 4766, mode: os.FileMode(420), modTime: time.Unix(1567092449, 0)} + info := bindataFileInfo{name: "schema.go", size: 4766, mode: os.FileMode(420), modTime: time.Unix(1567935214, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/examples/edgeindex/ent/migrate/migrate.go b/examples/edgeindex/ent/migrate/migrate.go index 9099e73cb..7991000b1 100644 --- a/examples/edgeindex/ent/migrate/migrate.go +++ b/examples/edgeindex/ent/migrate/migrate.go @@ -9,6 +9,7 @@ package migrate import ( "context" "fmt" + "io" "github.com/facebookincubator/ent/dialect" "github.com/facebookincubator/ent/dialect/sql/schema" @@ -50,3 +51,21 @@ func (s *Schema) Create(ctx context.Context, opts ...schema.MigrateOption) error } return migrate.Create(ctx, Tables...) } + +// WriteTo writes the schema changes to w instead of running them against the database. +// +// if err := client.Schema.WriteTo(context.Background(), os.Stdout); err != nil { +// log.Fatal(err) +// } +// +func (s *Schema) WriteTo(ctx context.Context, w io.Writer, opts ...schema.MigrateOption) error { + drv := &schema.WriteDriver{ + Writer: w, + Driver: s.drv, + } + migrate, err := schema.NewMigrate(drv, opts...) + if err != nil { + return fmt.Errorf("ent/migrate: %v", err) + } + return migrate.Create(ctx, Tables...) +} diff --git a/examples/m2m2types/ent/migrate/migrate.go b/examples/m2m2types/ent/migrate/migrate.go index 9099e73cb..7991000b1 100644 --- a/examples/m2m2types/ent/migrate/migrate.go +++ b/examples/m2m2types/ent/migrate/migrate.go @@ -9,6 +9,7 @@ package migrate import ( "context" "fmt" + "io" "github.com/facebookincubator/ent/dialect" "github.com/facebookincubator/ent/dialect/sql/schema" @@ -50,3 +51,21 @@ func (s *Schema) Create(ctx context.Context, opts ...schema.MigrateOption) error } return migrate.Create(ctx, Tables...) } + +// WriteTo writes the schema changes to w instead of running them against the database. +// +// if err := client.Schema.WriteTo(context.Background(), os.Stdout); err != nil { +// log.Fatal(err) +// } +// +func (s *Schema) WriteTo(ctx context.Context, w io.Writer, opts ...schema.MigrateOption) error { + drv := &schema.WriteDriver{ + Writer: w, + Driver: s.drv, + } + migrate, err := schema.NewMigrate(drv, opts...) + if err != nil { + return fmt.Errorf("ent/migrate: %v", err) + } + return migrate.Create(ctx, Tables...) +} diff --git a/examples/m2mbidi/ent/migrate/migrate.go b/examples/m2mbidi/ent/migrate/migrate.go index 9099e73cb..7991000b1 100644 --- a/examples/m2mbidi/ent/migrate/migrate.go +++ b/examples/m2mbidi/ent/migrate/migrate.go @@ -9,6 +9,7 @@ package migrate import ( "context" "fmt" + "io" "github.com/facebookincubator/ent/dialect" "github.com/facebookincubator/ent/dialect/sql/schema" @@ -50,3 +51,21 @@ func (s *Schema) Create(ctx context.Context, opts ...schema.MigrateOption) error } return migrate.Create(ctx, Tables...) } + +// WriteTo writes the schema changes to w instead of running them against the database. +// +// if err := client.Schema.WriteTo(context.Background(), os.Stdout); err != nil { +// log.Fatal(err) +// } +// +func (s *Schema) WriteTo(ctx context.Context, w io.Writer, opts ...schema.MigrateOption) error { + drv := &schema.WriteDriver{ + Writer: w, + Driver: s.drv, + } + migrate, err := schema.NewMigrate(drv, opts...) + if err != nil { + return fmt.Errorf("ent/migrate: %v", err) + } + return migrate.Create(ctx, Tables...) +} diff --git a/examples/m2mrecur/ent/migrate/migrate.go b/examples/m2mrecur/ent/migrate/migrate.go index 9099e73cb..7991000b1 100644 --- a/examples/m2mrecur/ent/migrate/migrate.go +++ b/examples/m2mrecur/ent/migrate/migrate.go @@ -9,6 +9,7 @@ package migrate import ( "context" "fmt" + "io" "github.com/facebookincubator/ent/dialect" "github.com/facebookincubator/ent/dialect/sql/schema" @@ -50,3 +51,21 @@ func (s *Schema) Create(ctx context.Context, opts ...schema.MigrateOption) error } return migrate.Create(ctx, Tables...) } + +// WriteTo writes the schema changes to w instead of running them against the database. +// +// if err := client.Schema.WriteTo(context.Background(), os.Stdout); err != nil { +// log.Fatal(err) +// } +// +func (s *Schema) WriteTo(ctx context.Context, w io.Writer, opts ...schema.MigrateOption) error { + drv := &schema.WriteDriver{ + Writer: w, + Driver: s.drv, + } + migrate, err := schema.NewMigrate(drv, opts...) + if err != nil { + return fmt.Errorf("ent/migrate: %v", err) + } + return migrate.Create(ctx, Tables...) +} diff --git a/examples/o2m2types/ent/migrate/migrate.go b/examples/o2m2types/ent/migrate/migrate.go index 9099e73cb..7991000b1 100644 --- a/examples/o2m2types/ent/migrate/migrate.go +++ b/examples/o2m2types/ent/migrate/migrate.go @@ -9,6 +9,7 @@ package migrate import ( "context" "fmt" + "io" "github.com/facebookincubator/ent/dialect" "github.com/facebookincubator/ent/dialect/sql/schema" @@ -50,3 +51,21 @@ func (s *Schema) Create(ctx context.Context, opts ...schema.MigrateOption) error } return migrate.Create(ctx, Tables...) } + +// WriteTo writes the schema changes to w instead of running them against the database. +// +// if err := client.Schema.WriteTo(context.Background(), os.Stdout); err != nil { +// log.Fatal(err) +// } +// +func (s *Schema) WriteTo(ctx context.Context, w io.Writer, opts ...schema.MigrateOption) error { + drv := &schema.WriteDriver{ + Writer: w, + Driver: s.drv, + } + migrate, err := schema.NewMigrate(drv, opts...) + if err != nil { + return fmt.Errorf("ent/migrate: %v", err) + } + return migrate.Create(ctx, Tables...) +} diff --git a/examples/o2mrecur/ent/migrate/migrate.go b/examples/o2mrecur/ent/migrate/migrate.go index 9099e73cb..7991000b1 100644 --- a/examples/o2mrecur/ent/migrate/migrate.go +++ b/examples/o2mrecur/ent/migrate/migrate.go @@ -9,6 +9,7 @@ package migrate import ( "context" "fmt" + "io" "github.com/facebookincubator/ent/dialect" "github.com/facebookincubator/ent/dialect/sql/schema" @@ -50,3 +51,21 @@ func (s *Schema) Create(ctx context.Context, opts ...schema.MigrateOption) error } return migrate.Create(ctx, Tables...) } + +// WriteTo writes the schema changes to w instead of running them against the database. +// +// if err := client.Schema.WriteTo(context.Background(), os.Stdout); err != nil { +// log.Fatal(err) +// } +// +func (s *Schema) WriteTo(ctx context.Context, w io.Writer, opts ...schema.MigrateOption) error { + drv := &schema.WriteDriver{ + Writer: w, + Driver: s.drv, + } + migrate, err := schema.NewMigrate(drv, opts...) + if err != nil { + return fmt.Errorf("ent/migrate: %v", err) + } + return migrate.Create(ctx, Tables...) +} diff --git a/examples/o2o2types/ent/migrate/migrate.go b/examples/o2o2types/ent/migrate/migrate.go index 9099e73cb..7991000b1 100644 --- a/examples/o2o2types/ent/migrate/migrate.go +++ b/examples/o2o2types/ent/migrate/migrate.go @@ -9,6 +9,7 @@ package migrate import ( "context" "fmt" + "io" "github.com/facebookincubator/ent/dialect" "github.com/facebookincubator/ent/dialect/sql/schema" @@ -50,3 +51,21 @@ func (s *Schema) Create(ctx context.Context, opts ...schema.MigrateOption) error } return migrate.Create(ctx, Tables...) } + +// WriteTo writes the schema changes to w instead of running them against the database. +// +// if err := client.Schema.WriteTo(context.Background(), os.Stdout); err != nil { +// log.Fatal(err) +// } +// +func (s *Schema) WriteTo(ctx context.Context, w io.Writer, opts ...schema.MigrateOption) error { + drv := &schema.WriteDriver{ + Writer: w, + Driver: s.drv, + } + migrate, err := schema.NewMigrate(drv, opts...) + if err != nil { + return fmt.Errorf("ent/migrate: %v", err) + } + return migrate.Create(ctx, Tables...) +} diff --git a/examples/o2obidi/ent/migrate/migrate.go b/examples/o2obidi/ent/migrate/migrate.go index 9099e73cb..7991000b1 100644 --- a/examples/o2obidi/ent/migrate/migrate.go +++ b/examples/o2obidi/ent/migrate/migrate.go @@ -9,6 +9,7 @@ package migrate import ( "context" "fmt" + "io" "github.com/facebookincubator/ent/dialect" "github.com/facebookincubator/ent/dialect/sql/schema" @@ -50,3 +51,21 @@ func (s *Schema) Create(ctx context.Context, opts ...schema.MigrateOption) error } return migrate.Create(ctx, Tables...) } + +// WriteTo writes the schema changes to w instead of running them against the database. +// +// if err := client.Schema.WriteTo(context.Background(), os.Stdout); err != nil { +// log.Fatal(err) +// } +// +func (s *Schema) WriteTo(ctx context.Context, w io.Writer, opts ...schema.MigrateOption) error { + drv := &schema.WriteDriver{ + Writer: w, + Driver: s.drv, + } + migrate, err := schema.NewMigrate(drv, opts...) + if err != nil { + return fmt.Errorf("ent/migrate: %v", err) + } + return migrate.Create(ctx, Tables...) +} diff --git a/examples/o2orecur/ent/migrate/migrate.go b/examples/o2orecur/ent/migrate/migrate.go index 9099e73cb..7991000b1 100644 --- a/examples/o2orecur/ent/migrate/migrate.go +++ b/examples/o2orecur/ent/migrate/migrate.go @@ -9,6 +9,7 @@ package migrate import ( "context" "fmt" + "io" "github.com/facebookincubator/ent/dialect" "github.com/facebookincubator/ent/dialect/sql/schema" @@ -50,3 +51,21 @@ func (s *Schema) Create(ctx context.Context, opts ...schema.MigrateOption) error } return migrate.Create(ctx, Tables...) } + +// WriteTo writes the schema changes to w instead of running them against the database. +// +// if err := client.Schema.WriteTo(context.Background(), os.Stdout); err != nil { +// log.Fatal(err) +// } +// +func (s *Schema) WriteTo(ctx context.Context, w io.Writer, opts ...schema.MigrateOption) error { + drv := &schema.WriteDriver{ + Writer: w, + Driver: s.drv, + } + migrate, err := schema.NewMigrate(drv, opts...) + if err != nil { + return fmt.Errorf("ent/migrate: %v", err) + } + return migrate.Create(ctx, Tables...) +} diff --git a/examples/traversal/ent/migrate/migrate.go b/examples/traversal/ent/migrate/migrate.go index 9099e73cb..7991000b1 100644 --- a/examples/traversal/ent/migrate/migrate.go +++ b/examples/traversal/ent/migrate/migrate.go @@ -9,6 +9,7 @@ package migrate import ( "context" "fmt" + "io" "github.com/facebookincubator/ent/dialect" "github.com/facebookincubator/ent/dialect/sql/schema" @@ -50,3 +51,21 @@ func (s *Schema) Create(ctx context.Context, opts ...schema.MigrateOption) error } return migrate.Create(ctx, Tables...) } + +// WriteTo writes the schema changes to w instead of running them against the database. +// +// if err := client.Schema.WriteTo(context.Background(), os.Stdout); err != nil { +// log.Fatal(err) +// } +// +func (s *Schema) WriteTo(ctx context.Context, w io.Writer, opts ...schema.MigrateOption) error { + drv := &schema.WriteDriver{ + Writer: w, + Driver: s.drv, + } + migrate, err := schema.NewMigrate(drv, opts...) + if err != nil { + return fmt.Errorf("ent/migrate: %v", err) + } + return migrate.Create(ctx, Tables...) +}