11# Fizz
22
33[ ![ Actions Status] ( https://github.com/gobuffalo/fizz/workflows/Tests/badge.svg )] ( https://github.com/gobuffalo/fizz/actions )
4- [ ![ GoDoc ] ( https://godoc.org/ github.com/gobuffalo/fizz?status .svg )] ( https://godoc.org /github.com/gobuffalo/fizz )
4+ [ ![ Go Reference ] ( https://pkg.go.dev/badge/ github.com/gobuffalo/fizz.svg )] ( https://pkg.go.dev /github.com/gobuffalo/fizz )
55
66A Common DSL for Migrating Databases
77
8- ## Create a Table
8+
9+ ## Supported Database Engines
10+
11+ Fizz supports minimum supported version of all supported database engines.
12+ Currently, the following database engines are officially supported. (Since
13+ Fizz is used with the migration feature of Pop, supported databases and the
14+ versions are correlated with Pop.)
15+
16+ * PostgreSQL 10
17+ * MySQL 5.7 / MariaDB 10.3
18+ * SQLite3 3.22
19+ * CockroachDB v21.1
20+ * MSSQL 2017 (not fully supported)
21+
22+
23+ ## Usage
24+
25+ ### Create a Table
926
1027``` javascript
1128create_table (" users" ) {
@@ -28,7 +45,7 @@ create_table("todos") {
2845}
2946```
3047
31- The ` id ` column don't have to be an integer. For instance, your can use an [ ` UUID ` ] ( https://github.com/gobuffalo/uuid ) type instead:
48+ The ` id ` column don't have to be an integer. For instance, your can use an UUID type instead:
3249
3350``` javascript
3451create_table (" users" ) {
@@ -75,89 +92,89 @@ create_table("user_privileges") {
7592
7693Please note that the ` t.PrimaryKey ` statement MUST be after the columns definitions.
7794
78- ## Drop a Table
95+ ### Drop a Table
7996
8097``` javascript
8198drop_table (" table_name" )
8299```
83100
84- ## Rename a Table
101+ ### Rename a Table
85102
86103``` javascript
87104rename_table (" old_table_name" , " new_table_name" )
88105```
89106
90- ## Add a Column
107+ ### Add a Column
91108
92109``` javascript
93110add_column (" table_name" , " column_name" , " string" , {})
94111```
95112
96113See [ above] ( #column-info ) for more details on column types and options.
97114
98- ## Alter a column
115+ ### Alter a column
99116
100117``` javascript
101118change_column (" table_name" , " column_name" , " string" , {})
102119```
103120
104- ## Rename a Column
121+ ### Rename a Column
105122
106123``` javascript
107124rename_column (" table_name" , " old_column_name" , " new_column_name" )
108125```
109126
110- ## Drop a Column
127+ ### Drop a Column
111128
112129``` javascript
113130drop_column (" table_name" , " column_name" )
114131```
115132
116- ## Add an Index
133+ ### Add an Index
117134
118135#### Supported Options:
119136
120137* ` name ` - This defaults to ` table_name_column_name_idx `
121138* ` unique `
122139
123- ### Simple Index:
140+ #### Simple Index:
124141
125142``` javascript
126143add_index (" table_name" , " column_name" , {})
127144```
128145
129- ### Multi-Column Index:
146+ #### Multi-Column Index:
130147
131148``` javascript
132149add_index (" table_name" , [" column_1" , " column_2" ], {})
133150```
134151
135- ### Unique Index:
152+ #### Unique Index:
136153
137154``` javascript
138155add_index (" table_name" , " column_name" , {" unique" : true })
139156```
140157
141- ### Index Names:
158+ #### Index Names:
142159
143160``` javascript
144161add_index (" table_name" , " column_name" , {}) # name => table_name_column_name_idx
145162add_index (" table_name" , " column_name" , {" name" : " custom_index_name" })
146163```
147164
148- ## Rename an Index
165+ ### Rename an Index
149166
150167``` javascript
151168rename_index (" table_name" , " old_index_name" , " new_index_name" )
152169```
153170
154- ## Drop an Index
171+ ### Drop an Index
155172
156173``` javascript
157174drop_index (" table_name" , " index_name" )
158175```
159176
160- ## Add a Foreign Key
177+ ### Add a Foreign Key
161178
162179``` javascript
163180add_foreign_key (" table_name" , " field" , {" ref_table_name" : [" ref_column" ]}, {
@@ -176,7 +193,7 @@ add_foreign_key("table_name", "field", {"ref_table_name": ["ref_column"]}, {
176193
177194** Note:** ` on_update ` and ` on_delete ` are not supported on CockroachDB yet.
178195
179- ## Drop a Foreign Key
196+ ### Drop a Foreign Key
180197
181198``` javascript
182199drop_foreign_key (" table_name" , " fk_name" , {" if_exists" : true })
@@ -187,13 +204,13 @@ drop_foreign_key("table_name", "fk_name", {"if_exists": true})
187204* ` if_exists ` - Adds ` IF EXISTS ` condition
188205
189206
190- ## Raw SQL
207+ ### Raw SQL
191208
192209``` javascript
193210sql (" select * from users;" )
194211```
195212
196- ## Execute an External Command
213+ ### Execute an External Command
197214
198215Sometimes during a migration you need to shell out to an external command.
199216
0 commit comments