Vapor과 함께 사용하기 위해 MariaDB에 UUID 저장

Najtim

Vapor에서 FluentMySQL을 사용하여 데이터를 저장하고 싶지만 UUID를 제대로 읽을 수 없습니다.

MariaDB에서 제공하는 UUID () 함수를 사용하면 모든 것이 정상이지만 FluentMySQL을 사용하면 UUID가 스크램블됩니다. (첫 번째 레코드 : UUID () 사용, 두 번째 레코드 : Vapor)

MariaDB [someDB]> select * from Poll;
+--------------------------------------+-------+---------+---------+--------+--------+
| id                                   | title | option1 | option2 | votes1 | votes2 |
+--------------------------------------+-------+---------+---------+--------+--------+
| 88a18a58-2fcd-11ea-9f62-e283e8014c79 | test  | bla     | bla     |      0 |      0 |
| 7??/.?E??*_P?v                     | bla   | option1 | option2 |      1 |      2 |
+--------------------------------------+-------+---------+---------+--------+--------+
2 rows in set (0.00 sec)

이것은 내 모델입니다.

import Foundation
import FluentMySQL
import Vapor

struct Poll: Content, MySQLUUIDModel, Migration {
    typealias ID = UUID
    static let entity: String = "Poll"

    var id: UUID?
    var title: String
    var option1: String
    var option2: String
    var votes1: Int
    var votes2: Int
}

이것은 내 테이블입니다.

MariaDB [someDB]> describe Poll;
+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id      | varchar(191) | YES  |     | NULL    |       |
| title   | varchar(191) | YES  |     | NULL    |       |
| option1 | varchar(191) | YES  |     | NULL    |       |
| option2 | varchar(191) | YES  |     | NULL    |       |
| votes1  | int(10)      | YES  |     | NULL    |       |
| votes2  | int(10)      | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

그러나 Vapor을 사용하여 데이터를 가져 오면 모든 것이 정상인 것 같습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

curl을 통한 출력 :

curl http://locurl http://localhost:8080/polls/list
[{"option1":"bla","id":"38386131-3861-3538-2D32-6663642D3131","title":"test","option2":"bla","votes1":0,"votes2":0},{"option1":"option1","id":"373F3F2F-2E3F-453F-3F0E-2A5F503F7607","title":"bla","option2":"option2","votes1":1,"votes2":2}]

미리 도와 주셔서 감사합니다.

새긴 ​​금

Vapor을 사용하여 UUID필드 자체 를 만드는 경우 데이터 유형이 varbinary(16)아닌 필드 를 만듭니다 varchar(191). 이는 MariaDB / MySQL의 UUID 필드에 대한 기본 형식과 일치합니다.

이것이 Vapor 외부에서 데이터가 생성되는 레거시 애플리케이션이라고 가정합니까? 기본 이진 값이 아닌 UUID 값의 문자열 표현을 저장하는 것 같습니다. varchar필드에 이진 값을 저장 하면 값이 모두 인쇄 가능하다고 가정하는 경우에만 문제가 발생합니다 (발견 한대로). 그러나 동일한 열에 문자열 및 2 진 형식 값이 혼합되면 문제가 발생할 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

IN 문에서 재사용하기 위해 WITH와 함께 하위 쿼리 저장

분류에서Dev

나중에 사용하기 위해 Async 함수의 결과 저장

분류에서Dev

mdadm과 함께 UUID 사용

분류에서Dev

Dask와 함께 사용하기 위해 S3에 대용량 압축 CSV를 저장하는 방법

분류에서Dev

파이프 명령 (|)과 함께 사용하기 위해 bash 명령의 출력 저장

분류에서Dev

나중에 사용하기 위해 JQuery JSON Ajax 결과 저장

분류에서Dev

지정된 열에 대해 저장된 수식 목록과 함께 mutate 사용

분류에서Dev

계산과 함께 저장 프로 시저에서 if / else 사용

분류에서Dev

-t test_pattern 옵션을 사용하여 배드 블록과 함께 사용하기 위해 장치에 패턴을 작성하는 방법

분류에서Dev

MVVM과 함께 사용하기 위해 뒤에있는 UserControl 코드 제거

분류에서Dev

목록에 저장 한 표현식을 사용해야하는데, 목록에 있기 때문에 "[표현식]"과 함께 제공됩니다.

분류에서Dev

다른 곳에서 사용하기 위해 SQL 문의 결과 저장

분류에서Dev

Python 3.5 함수 외부에서 사용하기 위해 배열 저장

분류에서Dev

하위 항목과 함께 항목 저장

분류에서Dev

신뢰 구간과 함께 pweight를 사용하고 행렬에 저장

분류에서Dev

Python 3.8과 함께 사용하기 위해 Windows에 pyodbc를 설치하려면 어떻게해야합니까?

분류에서Dev

데이터를 저장하기 위해 NWjs 오프라인 Windows 앱과 함께 사용할 데이터베이스 및 방법

분류에서Dev

동적 할당과 함께 C를 사용하여 CSV에서 값 읽기 및 저장

분류에서Dev

Laravel 5.2 추가 테이블을 사용하기 위해 스캐 폴딩과 함께 제공되는 Auth 확장

분류에서Dev

Spartacus 3.0과 함께 사용하기 위해 spartacussampledataaddon 설치 문제

분류에서Dev

콜백 ModelCheckpoint에서 모델과 함께 기록 저장

분류에서Dev

Promise와 함께 사용하기 위해 컨트롤러에 공장 서비스 데이터 가져 오기

분류에서Dev

nodejs 및 npm과 함께 사용하기 위해 우분투에 yeoman을 설치하려고합니다.

분류에서Dev

MySQL 데이터베이스에서 연결하기 위해 TypeOrm과 함께 NestJS를 사용하는 문제

분류에서Dev

nodejs 및 npm과 함께 사용하기 위해 우분투에 yeoman을 설치하려고합니다.

분류에서Dev

R에서 데이터 프레임을 필터링하기 위해 REGEX를 사용하는 grepl ()과 함께 subset ()

분류에서Dev

select 절에서 하위 선택하고 해당 값과 함께 사용

분류에서Dev

md-select에서 ng-model과 범위를 ng-repeat와 함께 사용하여 JSON 요소를 저장하고 표시합니다.

분류에서Dev

Selenium과 함께 사용하기 위해 모듈에서 변수를 가져올 수 있습니까?

Related 관련 기사

  1. 1

    IN 문에서 재사용하기 위해 WITH와 함께 하위 쿼리 저장

  2. 2

    나중에 사용하기 위해 Async 함수의 결과 저장

  3. 3

    mdadm과 함께 UUID 사용

  4. 4

    Dask와 함께 사용하기 위해 S3에 대용량 압축 CSV를 저장하는 방법

  5. 5

    파이프 명령 (|)과 함께 사용하기 위해 bash 명령의 출력 저장

  6. 6

    나중에 사용하기 위해 JQuery JSON Ajax 결과 저장

  7. 7

    지정된 열에 대해 저장된 수식 목록과 함께 mutate 사용

  8. 8

    계산과 함께 저장 프로 시저에서 if / else 사용

  9. 9

    -t test_pattern 옵션을 사용하여 배드 블록과 함께 사용하기 위해 장치에 패턴을 작성하는 방법

  10. 10

    MVVM과 함께 사용하기 위해 뒤에있는 UserControl 코드 제거

  11. 11

    목록에 저장 한 표현식을 사용해야하는데, 목록에 있기 때문에 "[표현식]"과 함께 제공됩니다.

  12. 12

    다른 곳에서 사용하기 위해 SQL 문의 결과 저장

  13. 13

    Python 3.5 함수 외부에서 사용하기 위해 배열 저장

  14. 14

    하위 항목과 함께 항목 저장

  15. 15

    신뢰 구간과 함께 pweight를 사용하고 행렬에 저장

  16. 16

    Python 3.8과 함께 사용하기 위해 Windows에 pyodbc를 설치하려면 어떻게해야합니까?

  17. 17

    데이터를 저장하기 위해 NWjs 오프라인 Windows 앱과 함께 사용할 데이터베이스 및 방법

  18. 18

    동적 할당과 함께 C를 사용하여 CSV에서 값 읽기 및 저장

  19. 19

    Laravel 5.2 추가 테이블을 사용하기 위해 스캐 폴딩과 함께 제공되는 Auth 확장

  20. 20

    Spartacus 3.0과 함께 사용하기 위해 spartacussampledataaddon 설치 문제

  21. 21

    콜백 ModelCheckpoint에서 모델과 함께 기록 저장

  22. 22

    Promise와 함께 사용하기 위해 컨트롤러에 공장 서비스 데이터 가져 오기

  23. 23

    nodejs 및 npm과 함께 사용하기 위해 우분투에 yeoman을 설치하려고합니다.

  24. 24

    MySQL 데이터베이스에서 연결하기 위해 TypeOrm과 함께 NestJS를 사용하는 문제

  25. 25

    nodejs 및 npm과 함께 사용하기 위해 우분투에 yeoman을 설치하려고합니다.

  26. 26

    R에서 데이터 프레임을 필터링하기 위해 REGEX를 사용하는 grepl ()과 함께 subset ()

  27. 27

    select 절에서 하위 선택하고 해당 값과 함께 사용

  28. 28

    md-select에서 ng-model과 범위를 ng-repeat와 함께 사용하여 JSON 요소를 저장하고 표시합니다.

  29. 29

    Selenium과 함께 사용하기 위해 모듈에서 변수를 가져올 수 있습니까?

뜨겁다태그

보관