Whole line reader

To read lines from input with white spaces, don't use fmt.Scanln as it will

Input processed by verbs is implicitly space-delimited: the implementation of every verb except %c starts by discarding leading spaces from the remaining input, and the %s verb (and %v reading into a string) stops consuming input at the first space or newline character.

Use bufio instead

scanner := bufio.NewScanner(os.Stdin)
if scanner.Scan() {
    line := scanner.Text()
    fmt.Printf("Input was: %q\n", line)
}

Check file existence

To check if a file doesn't exist, equivalent to Python's if not os.path.exists(filename):

if _, err := os.Stat("/path/to/whatever"); os.IsNotExist(err) {
  // path/to/whatever does not exist
}

To check if a file exists, equivalent to Python's if os.path.exists(filename):

if _, err := os.Stat("/path/to/whatever"); !os.IsNotExist(err) {
  // path/to/whatever exists
}

Dealing with nullable fields in SQL

https://github.com/golang/go/wiki/SQLInterface explains how to deal with nulls. In short, you need to use a nullable variable type to store a nullable value. So in your case, you'd use

var an_int64 sql.NullInt64
var a_string sql.NullString
var another_string sql.NullString
row := db.QueryRow("SELECT id, name, thumbUrl FROM x WHERE y=? LIMIT 1", model.ID)
err := row.Scan(&an_int64, &a_string, &another_string))