problemas con sqlite

Iniciado por lanjarón, 29 Enero 2010, 13:35 PM

0 Miembros y 2 Visitantes están viendo este tema.

lanjarón

hola! necesito ayuda
quiero crear una base de datos mysql en mi servidor pero el servidor no tiene instalado msql, tiene sqlite. cómo lo hago?

:ohk<any>

Cita de: lanjarón en 29 Enero 2010, 13:35 PM
hola! necesito ayuda
quiero crear una base de datos mysql en mi servidor pero el servidor no tiene instalado msql, tiene sqlite. cómo lo hago?

Cambia de servidor, o crea una base de datos en sqlite.
Si el server es tuyo, pues instalaselo.
Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.

^Tifa^

Creo que el se referira a que quiere crear un esquema o una base de datos en el servidor de base de datos que tiene, en este momento solo es SQLite, puedes crear un esquema o DB en SQLite y dentro de este crear tablas, procedimientos, etc, etc. Pero si vas a utilizar alguna aplicacion ya sea un foro o un manejador de contenidos si dicha aplicacion no es compatible o no soporta instalarse bajo un servidor SQLite, tendras que buscar otro servidor o si es tuyo el servidor instalarle MySQL.

Ahora sino ocurre el caso anterior y tienes una aplicacion que soporta SQLite o tu quieres trabajar con SQLite pero quieres crear primero tu esquema para poder trabajar con el, sencillamente haz:



bash$ sqlite3   Nombre_Base_datos

SQLite version 3.6.11
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table tbl1(one varchar(10), two smallint);
sqlite> insert into tbl1 values('hello!',10);
sqlite> insert into tbl1 values('goodbye', 20);
sqlite> select * from tbl1;




Es sencillo, en la web principal de SQLite te pueden guiar mas al manejo de este motorcito.

Fuente:  http://www.sqlite.org/sqlite.html

Nakp

tiene el driver sqlite de php? explicate mejor xD sqlite CARECE de servidor, son archivos manejados por un "driver" escrito en multiples lenguajes... que lenguaje usas? el sql es exactamente el mismo pero la forma de uso del driver varía de un lenguaje a otro
Ojo por ojo, y el mundo acabará ciego.

lanjarón

#4
muchas gracias a todos. os voy a explicar exactamente mi problema:
tengo que instalar moodle en un servidor cuyo gestor de base de datos es sqlite, y antes de la instalación tengoq crearme una base de datos mysql. uno de los problemas es q ese servidor no es mio y no puedo instalar nada ahí, no cambio de servidor pq tng q utilizar ese. alguien ha tenido éste problema?

Nakp

segun la documentacion oficial moodle soporta mysql, sqlserver, oracle y postgresql pero no sqlite (no en la version estabale)

sin embargo si estas usando la version 2.0 puedes seguir la guia que se encuentra en su wiki, todo lo que necesitas es tener el driver de sqlite en php

http://docs.moodle.org/en/Student_projects/SQLite#Moodle_installation_with_SQLite_database

no necesitas crear un schema ;)
Ojo por ojo, y el mundo acabará ciego.

^Tifa^

Y moodle soporta o no instalarse en un motor SQLite???? porque independientemente que el servidor remoto soporte o no trabajar con el API de SQLite... Moodle como aplicacion trabaja con SQLite o no? Porque de este punto no me entero.

En caso que Moodle no te de opcion de trabajar bajo SQLite y solo soporte Postgresql y Mysql por ejemplo, lamentablemente tendrias que busar la forma de instalar o peticionar instalar o activarte una cuenta MySQL en dicho servidor remoto en caso que MySQL exista.

De lo contrario, tendrias que hacer un trabajito largo y modificar el codigo fuente de Moodle para que trabaje con el API de SQLite en vez del API de MySQL... y eso amigo no es un proceso de 2 horas  :xD

Nakp

unicamente la version de desarrollo (2.0 en fase beta aun) soporta sqlite no necesita mas que seguir el instalador, si desea instalar la version estable la tiene negra xD

por suerte el api de mysql y de sqlite difieren en un prefijo y muy poco en funcionamiento, con buscar y reemplazar en varios archivos seguro se ahorra mucho trabajo :P
Ojo por ojo, y el mundo acabará ciego.

^Tifa^

Si pero es un trabajito pesado para un usuario modificar codigo fuente para que dicha aplicacion trabaje con SQLite, no se en que esta hecho Moodle, pero si es en PHP tendria que buscar el soporte de SQLite para PHP el modulo... aunque creo no estoy segura que ya PHP trabaja  en muchas ocasiones con el API de SQLite (Siempre y cuando se haya compilado PHP con soporte a esto). Pero en caso que no... el usuario tambien tendria la tarea de recompilar??? PHP con soporte SQLite  :-\  y entonces despues de esto modificar algunas lineas del codigo fuente para que trabaje con el API de SQLite  :-\

Yo si fuese el, busco la manera de que me proporcionen MySQL o Postgresql o Oracle... es mas facil que hacer todo lo anterior...

lanjarón

"Si pero es un trabajito pesado para un usuario modificar codigo fuente para que dicha aplicacion trabaje con SQLite, no se en que esta hecho Moodle, pero si es en PHP tendria que buscar el soporte de SQLite para PHP el modulo..."

moodle está hecho en php, a la hora de modificar el código fuente, qué tengo q hacer??
por ejemplo lo q tendría q modificar en install.php:

$INSTALL['dbtype']          = 'mysql';

if ($INSTALL['dbtype'] == 'mysql') {  /// Check MySQL extension is present
        if (!extension_loaded('mysql')) {
            $errormsg = get_string('mysqlextensionisnotpresentinphp', 'install');
            $nextstage = DATABASE;
        }
    }

if (empty($INSTALL['prefix']) && $INSTALL['dbtype'] != 'mysql') { // All DBs but MySQL require prefix (reserv. words)
        $errormsg = get_string('dbwrongprefix', 'install');
        $nextstage = DATABASE;
    }

if (empty($errormsg)) {

        error_reporting(0);  // Hide errors

        if (! $dbconnected = $db->Connect($INSTALL['dbhost'],$INSTALL['dbuser'],$INSTALL['dbpass'],$INSTALL['dbname'])) {
            /// The following doesn't seem to work but we're working on it
            /// If you come up with a solution for creating a database in MySQL
            /// feel free to put it in and let us know
            if ($dbconnected = $db->Connect($INSTALL['dbhost'],$INSTALL['dbuser'],$INSTALL['dbpass'])) {
                switch ($INSTALL['dbtype']) {   /// Try to create a database
                    case 'mysql':
                        if ($db->Execute("CREATE DATABASE {$INSTALL['dbname']};")) {
                            $dbconnected = $db->Connect($INSTALL['dbhost'],$INSTALL['dbuser'],$INSTALL['dbpass'],$INSTALL['dbname']);
                        } else {
                            $errormsg = get_string('dbcreationerror', 'install');
                            $nextstage = DATABASE;
                        }
                        break;
                }
            }
        } else {
        /// We have been able to connect properly, just test the database encoding now.
        /// It must be Unicode for 1.8 installations.
            $encoding = '';
            switch ($INSTALL['dbtype']) {
                case 'mysql':
                /// Get MySQL character_set_database value
                    $rs = $db->Execute("SHOW VARIABLES LIKE 'character_set_database'");
                    if ($rs && $rs->RecordCount() > 0) {
                        $records = $rs->GetAssoc(true);
                        $encoding = $records['character_set_database']['Value'];
                        if (strtoupper($encoding) != 'UTF8') {
                        /// Try to set the encoding now!
                            if (! $db->Metatables()) {  // We have no tables so go ahead
                                $db->Execute("ALTER DATABASE `".$INSTALL['dbname']."` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci");
                                $rs = $db->Execute("SHOW VARIABLES LIKE 'character_set_database'");  // this works

                            }
                        }
                        /// If conversion fails, skip, let environment testing do the job
                    }
                    break;
                case 'postgres7':
                /// Skip, let environment testing do the job
                    break;
                case 'oci8po':
                /// Skip, let environment testing do the job
                    break;
            }
        }
    }

    error_reporting(7);

    if (($dbconnected === false) and (empty($errormsg)) ) {
        $errormsg = get_string('dbconnectionerror', 'install');
        $nextstage = DATABASE;
    }

<td class="td_mainheading" colspan="2">
            <p class="p_mainheading"><?php echo $headstagetext[$nextstage] ?></p>
            <?php /// Exceptionaly, depending of the DB selected, we show some different text
                  /// from the standard one to show better instructions for each DB
                if ($nextstage == DATABASE) {
                    echo '<script type="text/javascript" defer="defer">window.onload=toggledbinfo;</script>';
                    echo '<div id="mysql" name="mysql">' . get_string('databasesettingssub_mysql', 'install') . '</div>';

                    echo '<div id="postgres7" name="postgres7">' . get_string('databasesettingssub_postgres7', 'install') . '</div>';

                    echo '<div id="mssql" name="mssql">' . get_string('databasesettingssub_mssql', 'install');
                /// Link to mssql installation page
                    echo '<p align="right"><a href="http://docs.moodle.org/en/Installing_MSSQL_for_PHP" target="_blank">';
                    echo '<img src="' . $INSTALL['wwwrootform'] . '/pix/docs.gif' . '" alt="Docs" class="iconhelp" />';
                    echo get_string('moodledocslink', 'install') . '</a></p>';
                    echo '</div>';

                    echo '<div id="mssql_n" name="mssql">' . get_string('databasesettingssub_mssql_n', 'install');
                /// Link to mssql installation page
                    echo '<p align="right"><a href="http://docs.moodle.org/en/Installing_MSSQL_for_PHP" target="_blank">';
                    echo '<img src="' . $INSTALL['wwwrootform'] . '/pix/docs.gif' . '" alt="Docs" />';
                    echo get_string('moodledocslink', 'install') . '</a></p>';
                    echo '</div>';

                    echo '<div id="odbc_mssql" name="odbc_mssql">'. get_string('databasesettingssub_odbc_mssql', 'install');
                /// Link to mssql installation page
                    echo '<p align="right"><a href="http://docs.moodle.org/en/Installing_MSSQL_for_PHP" target="_blank">';
                    echo '<img src="' . $INSTALL['wwwrootform'] . '/pix/docs.gif' . '" alt="Docs" class="iconhelp" />';
                    echo get_string('moodledocslink', 'install') . '</a></p>';
                    echo '</div>';

                    echo '<div id="oci8po" name="oci8po">' . get_string('databasesettingssub_oci8po', 'install');
                /// Link to oracle installation page
                    echo '<p align="right"><a href="http://docs.moodle.org/en/Installing_Oracle_for_PHP" target="_blank">';
                    echo '<img src="' . $INSTALL['wwwrootform'] . '/pix/docs.gif' . '" alt="Docs" class="iconhelp" />';
                    echo get_string('moodledocslink', 'install') . '</a></p>';
                    echo '</div>';
                } else {
                    if (!empty($substagetext[$nextstage])) {
                        echo '<p class="p_subheading">' . $substagetext[$nextstage] . '</p>';
                    }
                }
            ?>
        </td>

<?php choose_from_menu (array('mysql' => get_string('mysql', 'install'),
                                              'oci8po' => get_string('oci8po', 'install'),
                                              'postgres7' => get_string('postgres7', 'install'),
                                              'mssql' => get_string('mssql', 'install'),
                                              'mssql_n' => get_string('mssql_n', 'install'),
                                              'odbc_mssql' => get_string('odbc_mssql', 'install')),
                                        'dbtype', $INSTALL['dbtype'], '', 'toggledbinfo();') ?>

document.getElementById('mysql').style.display = '';

document.all['mysql'].style.display = '';

document.layers['mysql'].style.display = '';


y donde ponga mysql lo cambio por sqlite???