SQLite 설치

6998 단어 databaseserverless
저는 프로젝트를 진행해 왔으며 서버리스 미니 데이터베이스가 필요했습니다. 나는 sqlite를 사용하기로 결정했습니다. 자체적으로 가지고 있습니다advantages and limitations.

도전



여러 번 SQLite 버전/릴리스 관련 오류가 발생할 수 있습니다.
  • 찾고 있는 기능은 새 릴리스 또는 특정 릴리스에서만 사용할 수 있습니다
  • .
  • 응용 프로그램에서 이전 릴리스를 사용합니다.
  • 일부 실험을 위해 더 이상 사용되지 않는 일부 기능을 사용해 볼 수 있습니다.


  • 예시

    나는 upsert 쿼리에 어려움을 겪고 있었다

    INSERT INTO upsert_table (
                                 folder,
                                 filename,
                                 count
                             )
                             VALUES (
                                 '2021-01',
                                 'abc.json',
                                 1
                             )
                             ON CONFLICT (
                                 filename
                             )
                             DO UPDATE SET count = count + 1 WHERE filename = 'abc.json';
    


    로컬 시스템sqlite version 3.28.0에서는 제대로 작동했고 서버에서는 sqlite version 3.22.0Error: near "ON CONFLICT": syntax error 오류가 발생했습니다.

    일부 인터넷 검색 후 발견ON CONFLICT이 버전 > 3.23.0에서 지원됨

    요점은 릴리스와 관련된 많은 문제에 직면할 수 있으므로 소스에서 바이너리를 다운로드, 컴파일 및 빌드하는 방법을 배우는 것이 중요해진다는 것입니다.

    다운로드


  • 특정 릴리스의 필요성을 확인한 경우
  • 계속해서 sqlite releases
  • 에서 다운로드할 수 있습니다.
  • 버전으로 스크롤하고 체크인이라는 이름의 해시 ID를 클릭합니다.
  • 해당 특정 릴리스에 대한 세부 정보가 포함된 페이지로 리디렉션됩니다.
  • 클릭하여 다운로드하는 대신 tar.gz의 링크를 복사하여 wget을 사용하여 다운로드하고 서버에서도 동일한 명령을 사용할 수 있습니다.

  •   wget https://www.sqlite.org/src/tarball/884b4b7e/SQLite-884b4b7e.tar.gz
    



    설치



    아래 명령을 사용하여 바이너리를 빌드하십시오.

    cd                                  ;#  Takes you to Home directory
    tar xzf SQLite-884b4b7e.tar.gz      ;#  Unpack the source tree into "sqlite"
    mkdir bld                           ;#  Build will occur in a sibling directory
    cd bld                              ;#  Change to the build directory
    ../SQLite-884b4b7e/configure        ;#  Run the configure script
    make                                ;#  Run the makefile.
    make sqlite3.c                      ;#  Build the "amalgamation" source file
    make test                           ;#  Run some tests (requires Tcl)
    
    


    다운로드한 폴더 SQLite-884b4b7e/의 README.md에서도 이 단계를 찾을 수 있습니다.

    설치 후 바이너리 경로를 Linux $PATH 변수에 추가하여 시스템 어디에서나 sqlite에 액세스할 수 있습니다. 아래 명령을 실행하지 않으면 바이너리가 저장된 폴더에서 sqlite를 실행해야 합니다.

    export PATH=$HOME/bld:$PATH
    


    참고: 바이너리를 빌드하는 동안 아래 오류를 발견하면

    exec:  tclsh:  not found
    


    그런 다음 Tcl을 설치하십시오

    sudo apt-get install --reinstall tcl
    



    파이썬의 SQLite 업그레이드



    이제 OS에서 sqlite 버전을 업그레이드했습니다. 그러나 Python은 sqlite3 바이너리를 직접 사용할 수 없기 때문에 Python에서 새 버전에 액세스할 수 없습니다. 항상 sqlite3 공유 라이브러리에 연결된 모듈을 사용합니다.

    따라서 Python에서 sqlite 버전을 인쇄하면 이전 버전이 제공됩니다.

    import sqlite3
    sqlite3.sqlite_version #sqlite_version - sqlite version
    sqlite3.version # version - pysqlite version
    


    파이썬이 새로운 sqlite 버전을 사용하도록 하려면 Linux에서 .so 파일을 업데이트해야 합니다.
    소스에서 sqlite를 빌드한 디렉토리로 이동하면 lib 폴더에서 libsqlite3.so.0.8.6를 찾을 수 있습니다.libsqlite3.so.0.8.6/usr/lib/x86_64-linux-gnu/로 이동

    cd $HOME/bld/.libs
    sudo mv libsqlite3.so.0.8.6 /usr/lib/x86_64-linux-gnu/
    


    이제 Python에서 새 sqlite 버전을 사용할 준비가 되었습니다.

    SQLite 사용을 고려해야 하는 이유



    SQLite은 C 라이브러리에 있는 가볍고 작은 독립형 RDBMS입니다. MySql, PostgreSQL 등과 같은 인기 있는 데이터베이스는 클라이언트-서버 모델에서 작동하며 데이터베이스 작업의 모든 측면을 실행하고 제어하는 ​​전용 프로세스가 있습니다.

    그러나 SQLite에는 실행 중인 프로세스가 없으며 클라이언트-서버 모델이 없습니다. SQLite DB는 단순히 .sqlite3/.sqlite/.db 확장자를 가진 파일입니다. 모든 프로그래밍 언어에는 SQLite를 지원하는 라이브러리가 있습니다.

    에서 사용 중인 SQLite를 찾을 수 있습니다.
  • 웹 브라우저(Chrome, Safari, Firefox).
  • MP3 플레이어, 셋톱 박스 및 전자 장치.
  • 사물 인터넷(IoT).
  • Android, Mac, Windows, iOS 및 iPhone 장치.

  • SQLite가 사용되는 분야는 훨씬 더 많습니다. 전 세계의 모든 스마트폰에는 수백 개의 SQLite 데이터베이스 파일이 있으며 1조 개가 넘는 데이터베이스가 활발하게 사용되고 있습니다. 상당히 많은 숫자입니다.

    좋은 웹페이지 즐겨찾기