¿Cómo puedo crear un file de database SQLite3 usando un file de command SQL?

Tengo un file que contiene algunos commands SQL, algo que se ve así:

CREATE DATABASE IF NOT EXISTS `db_name`; USE `db_name`; CREATE TABLE IF NOT EXISTS `customers` ( `id` int(10) unsigned NOT NULL, `f_name` varchar(50) DEFAULT NULL, `l_name` varchar(50) DEFAULT NULL, `company_name` varchar(200) DEFAULT NULL, `email` varchar(50) DEFAULT NULL, `phone` varchar(25) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `customers` (`id`, `f_name`, `l_name`, `company_name`, `email`, `phone`) VALUES ... ... ... 

Me gustaría usar estos commands para crear un file de database SQLite3 para usarlo fácilmente con Python.

¿Cómo hago eso en Ubuntu?

Eso no es todo un file SQL, que contiene un montón de cosas específicas de MySQL algunas de las cuales SQLite aceptará y otras no. Comenzaremos en la parte superior.

No necesita create database o use con SQLite. Si desea crear una database, simplemente asígnele un nombre cuando ejecute sqlite3 desde la línea de command:

 $ sqlite3 db_name.sqlt < your_sql.sql 

Si db_name.sqlt existe, entonces se usará; si no existe, se creará. Así que create database y use están implícitos en cómo se ejecuta sqlite3 . Es posible que necesite usar una extensión diferente dependiendo de lo que Python quiera ver.

Los backticks para cotizar son un MySQLism, las comillas dobles son el mecanismo de cotización estándar para los identificadores. Por suerte para ti, SQLite los aceptará para que puedas dejarlos en paz.

SQLite no sabrá qué significa int(10) unsigned , tendrá que eliminar el unsigned antes de que SQLite lo acepte. SQLite tampoco sabrá qué ENGINE=InnoDB DEFAULT CHARSET=utf8 significa, así que también tendrá que eliminarlo.

Probablemente te encuentres con otras cosas con las que MySQL está contento pero SQLite no. Tendrás que probarlo y solucionarlo, probarlo y solucionarlo hasta que funcione. O intente encontrar una herramienta que pueda traducir entre bases de datos, siempre hago este tipo de cosas a mano o usando scripts únicos, así que no conozco ninguna herramienta que pueda ayudarlo.

Básicamente, los commands anteriores son para mysql u otra database (la mayoría de estos deben modificarse para trabajar con sqlite. Sqlite almacena la database en forma de file. Básicamente, cuando se inicia sqlite se creará un file (si no está presente). puede crear o abrir una database escribiendo

 sqlite3 db 

en línea de command. Esta statement crea o abre una database llamada "db"