Frage

Ich arbeite an einem Modul, das Zugriff auf einige tabellarische Daten aus einer externen Quelle erfordert. Es sind nur zwei Säulen, aber ungefähr 40000 Zeilen.

Derzeit analysiert mein Modul bei Bedarf nur das CSV. Dies funktioniert gut, aber da die Datei etwa 450 KB beträgt, werden die Serverressourcen einmal auf einer Produktionsstelle bereitgestellt.

Ich möchte diese Daten in eine Magento -Tabelle verschieben und habe Probleme.

Ich verwende die RDBMS -Methoden in meinem Setup -Skript ALA:

$installer = $this;
$installer->startSetup();

$table = $installer->getConnection()
    ->newTable($installer->getTable('my_table'))
    ->addColumn('column_a', Varien_Db_Ddl_Table::TYPE_TEXT, 5, array(
        'nullable' => false,
        ), 'Column A')
    ->addColumn('column_b', Varien_Db_Ddl_Table::TYPE_TEXT, 3, array(
        'nullable' => false,
        ), 'Column B');

$installer->getConnection()->createTable($table);

$installer->endSetup();

Dies funktioniert einwandfrei, um meine Tabelle zu erstellen, aber tatsächlich ist es, meinen Kopf in den Kopf zu bekommen (ich bin immer noch ein Noob, wenn es um die Datenbankverwaltung geht).

Idealerweise würde ich einfach meine CSV -Datei analysieren und Werte in die Tabelle einfügen, ohne mit einer Häufigkeit von Kopieren/Einfügen umgehen zu müssen.

Gibt es integrierte Methoden zum Umgang mit willkürlichen CSV-Daten oder sind sie alle für das Umgang mit dem, was sie brauchen? Was wäre der beste Ansatz, um meine Daten in Magento zu bringen?

War es hilfreich?

Lösung

Noch nie getan. Lass uns spielen!

Nach dem createTable() Rufen Sie an oder in einem nachfolgenden Skript:

/* @var $installer Mage_Core_Model_Resource_Setup */
$installer = $this;
$installer->startSetup();

//Extract data from CSV file
$csv = new Varien_File_Csv;
$data = $csv->getData('path/to/file.csv');

$resultNum = $installer->getConnection()->insertArray(
    $installer->getTable({TABLE NAME}),
    array({COL 1},{COL 2}),    //column names
    $data
);

//EDIT: if this is done using a data setup script, can even log the results:
Mage::log(
    __FILE__." added $resultNum records to $installer->getTable({TABLE NAME})",
    Zend_Log::INFO,
    "setup.log",
    true
);

$installer->endSetup();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top