Автоматизация создания базы данных SQLite из командного файла - PullRequest
5 голосов
/ 22 апреля 2011

На платформе Windows у меня есть следующее:

  • schema.sql (содержит сценарии sql)
  • sqlite3.exe (командная оболочка для sqlite -> загружена с sqlite.org)
  • build.bat: командный файл со строкой: sqlite3.exe -init schema.sql default.db3

Когда я запускаю build.bat, база данных создается, как и ожидалось, однако оболочка sqlite не завершается автоматически. Так как же заставить командный файл запускаться и автоматически завершать командную оболочку sqlite?

например. выход:

  C:\Work\X\Database>sqlite3.exe -init schema.sql default.db3  
  -- Loading resources from schema.sql  
  SQLite version 3.7.4  
  Enter ".help" for instructions  
  Enter SQL statements terminated with a ";"  
  sqlite>  

Ответы [ 6 ]

3 голосов
/ 22 апреля 2011

Попробуйте назвать это так:

echo .quit | sqlite3.exe 

Или поместите .quit в конец файла.

2 голосов
/ 06 октября 2016

У меня была такая же проблема с sqlite3 3.11 (но не с 3.8), и решение, которое у меня работало, было:

sqlite3.exe default.db3 < schema.sql

И ответ Реджиса тоже сработал.

2 голосов
/ 14 января 2016

Кажется (поскольку вы не показали его содержимое), что в файле bat отсутствует оператор exit. Вы можете добавить его самостоятельно:

sqlite3.exe -init schema.sql default.db3 .exit
0 голосов
/ 10 июня 2014

Гольф Ответ Андрея, вы также можете запустить:

echo | sqlite3

EOF собирается закрыть sqlite3

0 голосов
/ 22 апреля 2011

Попробуйте вместо:

type schema.sql | sqlite3 default.db3
0 голосов
/ 22 апреля 2011

Я согласен с Андреем. Если это не сработает, попробуйте добавить 'quit' на отдельной строке в конце вашей схемы.sql

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...