Не удается найти свойство Struct, которое существует с помощью Go / SQLX - PullRequest
1 голос
/ 05 февраля 2020

Я собираю метаданные из файла загрузки и вставляю в таблицу БД. Структура такова:

// file Metadata struct
type MetaData struct {
    Owner       string
    FileRows    int64
    FileSize    string
    FileName    string
    FileUuid    string
    LastUpdated string
}

И вот как я заполняю ссылку на структуру:

metaDataRow := MetaData{
    Owner:       "Fake Name",
    FileRows:    (int64)(count - 1),
    FileSize:    fileSize,
    FileName:    fileName,
    FileUuid:    handle,
    LastUpdated: time.Now().Format(time.RFC822Z),
}

Моя проблема заключается в том, что, когда я пытаюсь вставить эту структуру ref в моя база данных, я получаю сообщение об ошибке:

не удалось найти имя владельца в & processor.MetaData {Owner: "Fake Name", FileRows: 1499, FileSize: "308.9 kB", FileName: "small -file.csv ", FileUuid:« 1234567890qwerty », LastUpdated:« 30 января 20 21:13 +0000 »}

Теперь, как мы можем ясно видеть, Owner существует в структуре и это имеет значение, как и другие. Я не уверен, что при первом поиске произошел сбой при назначении запроса и panic был там, но я не могу пройти мимо этого, чтобы посмотреть, не сработали ли другие. Вот мой sqlx NamedExec, так как может быть проблема с моей ссылкой на Struct или с привязкой?

// execute transaction
_, err = tx.NamedExec(`
    INSERT INTO file_metadata (
        owner,
        file_rows,
        file_size,
        file_name,
        file_uuid,
        last_updated
    ) VALUES (
        :Owner,
        :FileRows,
        :FileSize,
        :FileName,
        :FileUuid,
        :LastUpdated
    )
`, &metaDataRow)

Надеюсь, это легко исправить, пограничная опечатка.

1 Ответ

2 голосов
/ 05 февраля 2020

Вы можете добавить db tag к вашей структуре:

 Owner string `db:"owner"`

и затем вставить:

...VALUES (:owner, ....
...