Last active
April 27, 2019 00:59
-
-
Save marcounderscore/cfec38abbada16e0cffa514a86a9228f to your computer and use it in GitHub Desktop.
Local migration used for yorha-api in order to populate a mysql database using gorm creating method
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"log" | |
"github.com/jinzhu/gorm" | |
_ "github.com/jinzhu/gorm/dialects/mysql" | |
) | |
// Race is a table structure. | |
type Race struct { | |
gorm.Model | |
Name string `gorm:"size:100"` | |
} | |
// Automata is a table structure. | |
type Automata struct { | |
gorm.Model | |
Name string `gorm:"size:100"` | |
Occupation string `gorm:"size:100"` | |
Photo string `gorm:"size:500"` | |
RaceID uint | |
Race Race | |
} | |
// Class is a table structure. | |
type Class struct { | |
gorm.Model | |
Name string `gorm:"size:100"` | |
} | |
// Weapon is a table structure. | |
type Weapon struct { | |
gorm.Model | |
Name string `gorm:"size:100"` | |
MinAttack int | |
MaxAttack int | |
Ability string `gorm:"size:100"` | |
Photo string `gorm:"size:500"` | |
ClassID uint | |
Class Class | |
} | |
// PodProgram is a table structure. | |
type PodProgram struct { | |
gorm.Model | |
Name string `gorm:"size:100"` | |
Program string `gorm:"size:100"` | |
Cooldown int | |
Photo string `gorm:"size:500"` | |
} | |
// Zone is a table structure. | |
type Zone struct { | |
gorm.Model | |
Name string `gorm:"size:100"` | |
BossID uint | |
} | |
// Boss is a table structure. | |
type Boss struct { | |
gorm.Model | |
Name string `gorm:"size:100"` | |
Faction string `gorm:"size:100"` | |
Zones []Zone `gorm:"foreignkey:BossID"` | |
Photo string `gorm:"size:500"` | |
} | |
func main() { | |
db, err := gorm.Open( | |
"mysql", | |
"yorha_user:yorha_pass@/yorha_db?charset=utf8&parseTime=True&loc=Local", | |
) | |
if err != nil { | |
panic("Connection failed to open!") | |
} else { | |
log.Println("Connection established!") | |
} | |
defer db.Close() | |
/*db.DropTable( | |
&Automata{}, | |
&Weapon{}, | |
&Race{}, | |
&Class{}, | |
&PodProgram{}, | |
&Zone{}, | |
&Boss{}, | |
)*/ | |
// Migrate the schema | |
db.AutoMigrate( | |
&Race{}, | |
&Automata{}, | |
&Class{}, | |
&Weapon{}, | |
&PodProgram{}, | |
&Zone{}, | |
&Boss{}, | |
) | |
db.Model(&Automata{}).AddForeignKey("race_id", "races(id)", "CASCADE", "CASCADE") | |
db.Model(&Weapon{}).AddForeignKey("class_id", "classes(id)", "CASCADE", "CASCADE") | |
// Races | |
db.Create(&Race{Name: "Android"}) | |
db.Create(&Race{Name: "Machine"}) | |
db.Create(&Race{Name: "Pod"}) | |
db.Create(&Race{Name: "AI"}) | |
// Automatas | |
db.Create(&Automata{Name: "YoRHa Type B No.2", Occupation: "YoRHa", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/yorha_2B_character.png", RaceID: 1}) | |
db.Create(&Automata{Name: "YoRHa Type S No.9", Occupation: "YoRHa", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/yorha_2S_character.png", RaceID: 1}) | |
db.Create(&Automata{Name: "YoRHa Type A No.2", Occupation: "YoRHa", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/yorha_A2_character.png", RaceID: 1}) | |
db.Create(&Automata{Name: "YoRHa Type B No.64", Occupation: "YoRHa", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/64B_icon.jpg", RaceID: 1}) | |
db.Create(&Automata{Name: "YoRHa Type B No.22", Occupation: "YoRHa", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/22B_icon.jpg", RaceID: 1}) | |
db.Create(&Automata{Name: "YoRHa Type B No.8", Occupation: "YoRHa", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/8B_icon.jpg", RaceID: 1}) | |
db.Create(&Automata{Name: "Emil", Occupation: "Shop", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/Emil.jpg", RaceID: 2}) | |
db.Create(&Automata{Name: "Pod 042", Occupation: "Support unit", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/Pod_042_01.jpg", RaceID: 3}) | |
db.Create(&Automata{Name: "Pod 153", Occupation: "Support unit", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/Pod_153_01.jpg", RaceID: 3}) | |
db.Create(&Automata{Name: "Operator 6O", Occupation: "YoRHa", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/Operator_01.jpg", RaceID: 1}) | |
db.Create(&Automata{Name: "Operator 21O", Occupation: "YoRHa", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/Operator_21O.jpg", RaceID: 1}) | |
db.Create(&Automata{Name: "Adam", Occupation: "Machine leader", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/adam-01.jpg", RaceID: 2}) | |
db.Create(&Automata{Name: "Eve", Occupation: "Machine leader", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/eve-02.jpg", RaceID: 2}) | |
db.Create(&Automata{Name: "Devola", Occupation: "YoRHa", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/Devola_01.jpg", RaceID: 1}) | |
db.Create(&Automata{Name: "Poppola", Occupation: "YoRHa", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/Popola_01.jpg", RaceID: 1}) | |
db.Create(&Automata{Name: "Pascal", Occupation: "Village leader", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/pascal.jpg", RaceID: 2}) | |
db.Create(&Automata{Name: "Commander", Occupation: "YoRHa", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/Commander_Header.jpg", RaceID: 1}) | |
db.Create(&Automata{Name: "Anemone", Occupation: "Resistance leader", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/Anemone.jpg", RaceID: 1}) | |
db.Create(&Automata{Name: "N2", Occupation: "Terminal program", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/red_girl.jpg", RaceID: 4}) | |
db.Create(&Automata{Name: "Jackass", Occupation: "Resistance", Photo: "https://proxy.duckduckgo.com/iu/?u=http%3A%2F%2Fstatici.behindthevoiceactors.com%2Fbehindthevoiceactors%2F_img%2Fchars%2Fjackass-nier-automata-4.85.jpg&f=1", RaceID: 1}) | |
db.Create(&Automata{Name: "Jean Paul", Occupation: "Village machine", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/sartre.jpg", RaceID: 2}) | |
db.Create(&Automata{Name: "Masemune", Occupation: "Master swordsmith", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/masamune.jpg", RaceID: 2}) | |
db.Create(&Automata{Name: "Animal-loving machine", Occupation: "Farmer", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/animal_loving_machine.jpg", RaceID: 2}) | |
db.Create(&Automata{Name: "Father servo", Occupation: "Warrior", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/father_stervo_white_belt.jpg", RaceID: 2}) | |
db.Create(&Automata{Name: "High-Speed machine", Occupation: "Racer", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/High-Speed-Machine-Speedstar-Racer-Header1.jpg", RaceID: 2}) | |
db.Create(&Automata{Name: "Little sister machine", Occupation: "Village machine", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/little_sister_machine.jpg", RaceID: 2}) | |
db.Create(&Automata{Name: "Big sister machine", Occupation: "Village machine", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/big_sister_machine.jpg", RaceID: 2}) | |
db.Create(&Automata{Name: "Machine in love", Occupation: "Village machine", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/Machine_in_Love.jpg", RaceID: 2}) | |
db.Create(&Automata{Name: "Child machine", Occupation: "Village machine", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/child_machine.jpg", RaceID: 2}) | |
db.Create(&Automata{Name: "Scientist machine", Occupation: "Village machine", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/scientist_machine.jpg", RaceID: 2}) | |
// Classes | |
db.Create(&Class{Name: "Small sword"}) | |
db.Create(&Class{Name: "Large sword"}) | |
db.Create(&Class{Name: "Spear"}) | |
db.Create(&Class{Name: "Combat bracer"}) | |
// Weapons | |
db.Create(&Weapon{Name: "Beastbane", MinAttack: 190, MaxAttack: 210, Ability: "Beast roar", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/beastbane_01.jpg", ClassID: 1}) | |
db.Create(&Weapon{Name: "Engine blade", MinAttack: 160, MaxAttack: 200, Ability: "Shift avoid", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/engine-blade-nier-automata.jpg", ClassID: 1}) | |
db.Create(&Weapon{Name: "Faith", MinAttack: 160, MaxAttack: 190, Ability: "Bullet absorb", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/Faith.jpg", ClassID: 1}) | |
db.Create(&Weapon{Name: "Type-40 sword", MinAttack: 170, MaxAttack: 180, Ability: "Energy charge", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/Type%2040.bmp", ClassID: 1}) | |
db.Create(&Weapon{Name: "Iron will", MinAttack: 250, MaxAttack: 400, Ability: "Steel spine", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/IronWill.jpg", ClassID: 2}) | |
db.Create(&Weapon{Name: "Fang of the twins", MinAttack: 310, MaxAttack: 320, Ability: "Bullet rupture", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/FangTwins.jpg", ClassID: 2}) | |
db.Create(&Weapon{Name: "Beast lord", MinAttack: 320, MaxAttack: 350, Ability: "Beast roar", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/Beastlord_01.jpg", ClassID: 2}) | |
db.Create(&Weapon{Name: "Type-40 blade", MinAttack: 320, MaxAttack: 330, Ability: "Energy charge", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/Type-4O_Blade.jpg", ClassID: 2}) | |
db.Create(&Weapon{Name: "Beastcurse", MinAttack: 240, MaxAttack: 265, Ability: "Beast roar", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/Beastcurse.jpg", ClassID: 3}) | |
db.Create(&Weapon{Name: "Dragon lance", MinAttack: 250, MaxAttack: 260, Ability: "Dragon wings", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/Dragoon_Lance.jpg", ClassID: 3}) | |
db.Create(&Weapon{Name: "Phoenix lance", MinAttack: 210, MaxAttack: 250, Ability: "Phoenix flash", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/PhoenixLance.jpg", ClassID: 3}) | |
db.Create(&Weapon{Name: "Type-40 lance", MinAttack: 240, MaxAttack: 250, Ability: "Energy charge", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/Type-4O_Lance.jpg", ClassID: 3}) | |
db.Create(&Weapon{Name: "Bare fist", MinAttack: 100, MaxAttack: 100, Ability: "", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/bare_fists.png", ClassID: 4}) | |
db.Create(&Weapon{Name: "Angel's folly", MinAttack: 570, MaxAttack: 627, Ability: "Angel's mercy", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/Angel's%20Folly.jpg", ClassID: 4}) | |
db.Create(&Weapon{Name: "Demon's cry", MinAttack: 100, MaxAttack: 180, Ability: "Devil's hatred", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/DemonsCry.jpg", ClassID: 4}) | |
db.Create(&Weapon{Name: "Type-40 fists", MinAttack: 140, MaxAttack: 150, Ability: "Energy charge", Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/Type4O.jpg", ClassID: 4}) | |
//Pod programs | |
db.Create(&PodProgram{Name: "Laser", Program: "R010", Cooldown: 1300, Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/r010_laser.jpg"}) | |
db.Create(&PodProgram{Name: "Mirage", Program: "R020", Cooldown: 1150, Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/R020_mirage_01.jpg"}) | |
db.Create(&PodProgram{Name: "Hammer", Program: "R030", Cooldown: 1200, Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/R030_hammer_01.jpg"}) | |
db.Create(&PodProgram{Name: "Blade", Program: "R040", Cooldown: 0, Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/R040_blade_01.jpg"}) | |
db.Create(&PodProgram{Name: "Spear", Program: "R050", Cooldown: 600, Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/R050_spear_01.jpg"}) | |
db.Create(&PodProgram{Name: "P shield", Program: "A060", Cooldown: 1300, Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/A060_p_shield_01.jpg"}) | |
db.Create(&PodProgram{Name: "M shield", Program: "R070", Cooldown: 1300, Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/R070_m_shield_01.jpg"}) | |
db.Create(&PodProgram{Name: "Wave", Program: "A080", Cooldown: 0, Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/wave.PNG"}) | |
db.Create(&PodProgram{Name: "Wire", Program: "A090", Cooldown: 0, Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/wire.PNG"}) | |
db.Create(&PodProgram{Name: "Decoy", Program: "A100", Cooldown: 1300, Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/r100_decoy.jpg"}) | |
db.Create(&PodProgram{Name: "Slow", Program: "A110", Cooldown: 1300, Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/r110_slow.jpg"}) | |
db.Create(&PodProgram{Name: "Repair", Program: "A120", Cooldown: 800, Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/r120_repair.jpg"}) | |
db.Create(&PodProgram{Name: "Bomb", Program: "A130", Cooldown: 800, Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/a130_bomb.jpg"}) | |
db.Create(&PodProgram{Name: "Gravity", Program: "A140", Cooldown: 1300, Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/a140_gravity.jpg"}) | |
db.Create(&PodProgram{Name: "Volt", Program: "A150", Cooldown: 500, Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/a150_volt.jpg"}) | |
db.Create(&PodProgram{Name: "Missile", Program: "A160", Cooldown: 1200, Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/a160_missle.jpg"}) | |
db.Create(&PodProgram{Name: "Scanner", Program: "A170", Cooldown: 0, Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/a170_scanner.jpg"}) | |
// Bosses | |
db.Create(&Boss{Name: "Marx", Faction: "Special unit machines", Zones: []Zone{{Name: "Abandoned factory"}}, Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/excavator.jpg"}) | |
db.Create(&Boss{Name: "Engels", Faction: "Special unit machines", Zones: []Zone{{Name: "Abandoned factory"}, {Name: "City ruins"}}, Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/goliath.jpg"}) | |
db.Create(&Boss{Name: "Beauvoir", Faction: "Machine", Zones: []Zone{{Name: "Amusement park"}}, Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/beauvoir.jpg"}) | |
db.Create(&Boss{Name: "Grun", Faction: "Machines", Zones: []Zone{{Name: "Ocean"}}, Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/grun.jpg"}) | |
db.Create(&Boss{Name: "Hegel", Faction: "Machines", Zones: []Zone{{Name: "Desert"}}, Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/Hegel_Page_Header.jpg"}) | |
db.Create(&Boss{Name: "Emil clones", Faction: "Humans", Zones: []Zone{{Name: "Desert"}}, Photo: "https://nierautomata.wiki.fextralife.com/file/Nier-Automata/Emil_Clones_Header.jpg"}) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment