NOISSUE - Add Things Migration#2
Conversation
| @@ -0,0 +1,39 @@ | |||
| package main | |||
There was a problem hiding this comment.
No need for a migrate subdirectory, cmd/main.go is just fine.
| func connectToThingsDB(dbConfig mf13thingspostgres.Config) *sqlx.DB { | ||
| db, err := mf13thingspostgres.Connect(dbConfig) | ||
| if err != nil { | ||
| log.Panic(fmt.Errorf("Failed to connect to things postgres: %s", err)) |
| // Root Flags | ||
| rootCmd.PersistentFlags().StringVarP(&cfg.FromVersion, "fromversion", "f", "0.13.0", "mainflux version you want to migrate from") | ||
| rootCmd.PersistentFlags().StringVarP(&cfg.ToVersion, "toversion", "t", "0.14.0", "mainflux version you want to migrate to") | ||
| rootCmd.PersistentFlags().StringVarP(&cfg.Operation, "operation", "o", "export", "export dataor import data to a new mainflux deployment") |
| } | ||
| o := limit | ||
| limit = util.UpdateLimit(usersPage.Total) | ||
| for o < usersPage.Total { |
There was a problem hiding this comment.
The idea of fetching everything from the DB to the RAM. That's the point of pagination. This should be more like a pipe where we stream (channel) the batch, and publish it to the next phase to process. Bear in mind that we'll need to remember "last saved" so in case something goes wrong we don't need to start over.
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
1c3819f to
809adf8
Compare
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
| ) | ||
|
|
||
| const ( | ||
| migrationDuration = 1 * time.Hour |
There was a problem hiding this comment.
this might not be a good idea to set a fixed value because we don't know how long it could take for different sizes of migrations
| switch { | ||
| case total <= limit1000: | ||
| return defLimit | ||
| case total <= limit10000: | ||
| return limit1000 | ||
| case total <= limit100000: | ||
| return limit10000 | ||
| case total <= limit1000000: |
There was a problem hiding this comment.
this can be reduced a mathematical statement
|
|
||
| func Migrate(ctx context.Context, cfg migrations.Config, logger logger.Logger) { | ||
| go func() { | ||
| log.Println(http.ListenAndServe("localhost:6060", nil)) |
|
regarding the token timeout, you can add to documentation on how to change env var to create a longer duration token for migration purposes |
Signed-off-by: rodneyosodo <blackd0t@protonmail.com>
Signed-off-by: rodneyosodo blackd0t@protonmail.com
KNOWN ISSUES