---
# System prepended metadata

title: Golang 筆記(1)-啟動golang
tags: [Golang]

---

---
tags: Golang
---
# Golang 筆記(1)-啟動golang

### &sect;進入點 main()
* admin server
    > server/admin.go

     ` go run ./Admin/admin.go`


* api server (前台伺服器)
* 
    > server/api.go

    ` go run ./Api/api.go`
    
* run 起來後，可以在playground看到資料及可用fn demo

### &sect;環境設定檔
* 每個人的環境可能會不同，所以只有範例檔，需要自己設定
複製一份(這樣git push檔案才不會變動)，把檔名example刪掉
> \XinMedia-XinAPI\.env.yml


### &sect;建立自己的資料庫
[下載XAMPP](https://www.apachefriends.org/zh_tw/index.html) 
![](https://miro.medium.com/max/904/1*9QeDW3TNKZJuM3uvqkz1iA.png)

按admin => 開啟php 圖形化資料庫界面 
config可以改port(如果被佔了的話要改掉)
![](https://i.imgur.com/5g5aQgO.png)


### &sect; clone專案及下載套件
`go mod download`


### &sect; build 資料夾重建(因為是動態更新，所以是gitnore)

` go run ./scripts/artisan.go gql admin`

![](https://i.imgur.com/CwaUlaY.png)



### 建立TABLE及MIGRATE

1. 有多少個TABLE就要在資料庫建幾個
不然會報錯
D:\XinMedia-XinAPI\config\database.yml
```
DB_SOLOMO:
    dialect: 'mysql'
    database: 'xinmedia_solomo'  //TABLE名稱
    host: '127.0.0.1'
    port: '3306'
    user: 'root'
    password: '填入本機設定的密碼'
```

2. 依照先前的設定部屬TABLE，RUN 指令:
`go run ./scripts/artisan.go migrate up -e solomo`



### &sect; 設定gql


port: 設定開啟的port (可能撞port要改)
cors: 設定可以跨域的網址

開了8080
下面就要設定 http://localhost:**8080**


![](https://i.imgur.com/v8cKAaZ.png)

### &sect; playground 網址
http://localhost:8080/graphql/playground

### &sect; 即時監控更新
`go run github.com/oxequa/realize start --name="admin"`

簡稱` realize start --name="admin"`
需先安裝套件
`go get github.com/oxequa/realize   `

### &sect; 套件安裝
go get github.com/gobuffalo/pop/...

建立兩個資料庫:  member& solomo
go run ./scripts/artisan.go DB create -e solomo




### &sect; 新增及刪除TABLE 
`go run .\scripts\artisan.go migrate down -e solomo`
做一步，刪最上面的

![](https://i.imgur.com/M09l9v1.png)

版本號對應到 資料庫SCHEMA_MIGRATION TABLE
![](https://i.imgur.com/4dD2t1O.png)


-----
### &sect; go 在C槽(安裝處)會有三個資料夾
* bin: 放打包好的執行檔，可以用指令執行
* pkg
* src : 放專案，用go run啟動



### go basic 參考資料
[golang git-book](https://github.com/astaxie/build-web-application-with-golang/blob/master/zh-tw/preface.md)
先看章節2
![](https://i.imgur.com/imLNgmB.png)


[golang orm 套件](https://gobuffalo.io/en/docs/db/getting-started/)

[99design/gqlgen](https://gqlgen.com/)

[Configure MAMP to use mariadb](https://stackoverflow.com/questions/6448883/configure-mamp-to-use-mariadb)
