문제

가능하다면 다음과 유사한 PostgreSQL 데이터베이스를 내장할 수 있는 데 관심이 있습니다. SQLlite.읽어봤는데 그렇더라구요 불가능하다.하지만 저는 데이터베이스 전문가가 아니므로 여러분의 의견을 듣고 싶습니다.

기본적으로 저는 모든 구성과 설치가 필요 없는 PostgreSQL을 원합니다.가능하다면 방법을 알려주십시오.

도움이 되었습니까?

해결책

코드를 크게 다시 작성하지 않는 한 Postgres를 "임베디드"로 실행할 수 없습니다.별도의 프로세스로 실행하거나 다른 프로세스를 사용하십시오.SQLite는 탁월한 선택입니다.그러나 다른 것들도 있습니다.MySQL에는 임베디드 버전이 있습니다.에서 확인하세요 http://mysql.com/oem/.또한 여러 가지 Java 선택 사항이 있으며 Mac에는 작성할 수 있는 핵심 데이터도 있습니다.지옥, FoxPro를 사용할 수도 있습니다.어떤 OS를 사용하고 있으며 데이터베이스에서 어떤 서비스가 필요합니까?

다른 팁

삽입할 수도 없고 시도해서도 안 됩니다.

삽입하려면 다음을 사용해야 합니다. SQLite 당신이 언급했거나 파이어버드 RDBMS.

백그라운드 프로세스에서 postgresql을 실행합니다.

임의의 사용 가능한 포트를 사용하여 localhost에 바인딩하거나 소켓(Windows에서 소켓을 지원합니까?)을 사용하여 로컬 모드에서 postgresql 서버를 시작하는 별도의 스레드를 애플리케이션에서 시작합니다.다음과 같이 상당히 쉬울 것입니다.

system("C:\Program Files\MyApplication\pgsql\postgres.exe -D C:\Documents and Settings\User\Local Settings\MyApplication\database -h 127.0.0.1 -p 12345");

그런 다음 127.0.0.1:12345에 연결하면 됩니다.

애플리케이션이 종료되면 언제든지 SIGTERM을 스레드에 보낸 다음 postgresql이 종료(즉, 스레드에 참여)될 때까지 몇 초 정도 기다릴 수 있습니다.

추신:당신은 또한 사용할 수 있습니다 pg_ctl 스레드 없이도 "임베디드" 데이터베이스를 제어하려면 응용 프로그램을 시작할 때 "pg_ctl start"(적절한 옵션 사용)를 수행하고 종료할 때 "pg_ctl stop"을 수행하면 됩니다.

sqlite 등과 같은 프로세스 내 유형으로 포함할 수는 없지만 Inno 설정을 사용하여 애플리케이션 설정에 쉽게 포함할 수 있습니다. http://www.innosetup.org.메일링 리스트 아카이브를 검색하면 누군가가 귀하를 위해 대부분의 작업을 수행한 것을 찾을 수 있으며 압축된 배포판을 가져오기만 하면 사용자가 앱을 설치할 때 postgresql을 쉽게 설치할 수 있습니다.그런 다음 pg_hba.conf 파일을 사용하여 서버를 로컬 호스트로만 제한할 수 있습니다.진정한 임베디드 DB는 아니지만 작동할 것입니다.

PostgreSQL은 독립형 서버로 실행되도록 고안되었습니다.충분히 세게 해킹하면 포함하는 것이 가능할 수 있지만 별도의 프로세스에서 의도한 대로 실행하는 것이 훨씬 쉬울 것입니다.

HSQLDB(http://hsqldb.org/)는 쉽게 삽입할 수 있는 또 다른 DB입니다.Java가 필요하지만 Java 애플리케이션에 탁월하고 자주 사용되는 선택입니다.

Mac OS X에서 시도해 본 사람은 다음과 같습니다.

http://pagesperso-orange.fr/bruno.gaufier/xhtml/prod_postgresql.xhtml

http://www.macosxguru.net/article.php?story=20041119135924825

(물론 sqlite도 내가 선택한 임베디드 DB일 것입니다)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top