标签: sqlite

从 sqlite 迁移到 postgresql

我有包含大量数据的 sqlite 数据库。我想将我的 sqlite 中的所有数据“复制”(迁移)到 postgres 数据库。有谁知道帮助将 sqlite 迁移到 postgres 的工具?我谷歌它,但没有找到一些东西。非常感谢您的帮助。

database migration sqlite postgresql migrate

0
推荐指数
1
解决办法
2012
查看次数

当我尝试使用外键约束创建 SQLite 表时,为什么会出现“DBD::SQLite::db do failed: near "transaction": syntax error”?

我正在尝试创建一个包含两个表的数据库:客户和交易(一个客户可以做很多交易,一个交易只能由一个客户完成)。我正在使用以下 Perl 代码:

my $dbh = DBI->connect("dbi:SQLite:dbname=$RealBin/active.db","","")
    or die $DBI::errstr;

my @ddl = (
    "CREATE TABLE IF NOT EXISTS customer (
      id INTEGER PRIMARY KEY UNIQUE,
      id_1 INTEGER,
      id_2 INTEGER,
      name TEXT
    )",
    "CREATE TABLE IF NOT EXISTS transaction (
      id INTEGER PRIMARY KEY AUTOINCREMENT,
      customer_id INTEGER REFERENCES customer(id),
    )"
);

for my $sql (@ddl){
  $dbh->do($sql);
}
Run Code Online (Sandbox Code Playgroud)

当我运行我的脚本时,我收到以下错误:

DBD::SQLite::db do failed: near "transaction": syntax error at
    t/oneToMany.t line 28 (#1)
DBD::SQLite::db do failed: near "transaction": syntax error at t/oneToMany.t line …
Run Code Online (Sandbox Code Playgroud)

sqlite perl dbi create-table

0
推荐指数
1
解决办法
1320
查看次数

删除 Django SQLITE3 数据库中的数据库行

如何在解释器级别删除 Django 数据库中的一行。我正在对数据库进行故障排除,我希望能够定位 Django sqlite3 数据库中的特定行。

目前我可以在数据库中创建条目如下:

>> Item.objects.create(text='Item A')
Run Code Online (Sandbox Code Playgroud)

我可以使用以下方法在数据库中查看:

>> for p in Item.objects.raw('SELECT * FROM appName_model'):
...    print(p.text)
...
Run Code Online (Sandbox Code Playgroud)

我正确地获得了数据库内容(他们的文本字段)。

通过索引、text_field 或某些其他属性定位特定行时遇到问题。我直接在 Python 解释器上进行故障排除。

database sqlite django delete-row

0
推荐指数
1
解决办法
4593
查看次数

语法错误android sqlite:靠近“组”

这是 logcat 窗口显示的异常

06-08 11:25:55.532 8480-8480/example.com.shareit E/SQLiteLog: (1) near "group": syntax error      
06-08 11:25:55.542 8480-8480/example.com.shareit E/SQLiteDatabase: Error inserting amount=100 share1=0 share2=100 share3=0 paid2=0 share4=0 paid3=0 description=Food paid1=100 paid4=0 group=4 date=6/8/2016
06-08 11:25:55.542 8480-8480/example.com.shareit E/SQLiteDatabase: android.database.sqlite.SQLiteException: near "group": syntax error (code 1): , while compiling: INSERT INTO contacts(amount,share1,share2,share3,paid2,share4,paid3,description,paid1,paid4,group,date) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)
Run Code Online (Sandbox Code Playgroud)

希望有人理解这一点,这是我的 InsertContact()

public long insertContact(int amount, String description, String date, int paid1, int paid2,int paid3,int paid4, int share1, int share2,int share3,int share4,long group) {
    ContentValues initialValues = new ContentValues();
    initialValues.put(KEY_AMOUNT, amount); …
Run Code Online (Sandbox Code Playgroud)

sqlite android

0
推荐指数
1
解决办法
1530
查看次数

whatsapp 数据库中每个媒体文件的链接在哪里

我想用 Whatsapp 群组中的所有照片组织一个相册。使用根电话,我已将未加密的 whatsapp 数据库下载到我的计算机上。

在 Ubuntu 上使用 Sqliteman,我环顾四周,特别是在 msgstore.db 中,似乎无法找到特定组图像的所有链接。

通过表“chat_list”,我看到一个特定的“key_remote_jid”值对应于我想要的组,在“消息”数据库中,我可以使用该“key_remote_jid”来获取与该组相关的所有消息,例如:

select * from messages where key_remote_jid="53151151515-1515131313535@g.us";
Run Code Online (Sandbox Code Playgroud)

此外,我可以丢弃短信,以便专注于我想要的媒体(主要是照片和视频)

select * from messages where key_remote_jid="53151151515-1515131313535@g.us" and  not media_wa_type = 0;
Run Code Online (Sandbox Code Playgroud)

那里的一些图像在“media_name”列下有一个文件名,但它们只是我发送的那些。

还有一个名为“media_refs”的表,它包含许多图像和视频的路径,但似乎只包含已转发到多个聊天的文件,并且有一个我还没有找到与“消息”表相关的密钥.

该组相当古老(可追溯到 2013 年),而且多年来 whatsapp 处理其数据库的方式似乎已经发生了变化,因为有些列在过去一直是 {null} 而不是在最近的消息中(例如参与者哈希) 并且值 key_id 似乎在某个时候改变了格式。

然而,Whatsapp 应用程序可以毫无问题地向我显示过去任何时候的文件,并让我可以选择使用“画廊”类型的软件打开实际文件,因此该信息在我手机中的某个地方。

所有这一切的重点是基本上有一个我可以使用的备份,并且能够从我的手机中删除图像,并且仍然以它们在该组中共享的相同方式组织它们。

database sqlite whatsapp

0
推荐指数
1
解决办法
2124
查看次数

引起:SQL(查询)错误或缺少数据库

每次我单击按钮向表中添加项目时,应用程序崩溃,我收到此错误,logcat:

    11-30 21:46:00.822 13943-13943/com.example.user.timetable_test E/SQLiteLog: (1) near "TABLESunday": syntax error
11-30 21:46:00.827 13943-13943/com.example.user.timetable_test D/AndroidRuntime: Shutting down VM
11-30 21:46:00.827 13943-13943/com.example.user.timetable_test E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                 Process: com.example.user.timetable_test, PID: 13943
                                                                                 android.database.sqlite.SQLiteException: near "TABLESunday": syntax error (code 1): , while compiling: CREATE TABLESunday(_session INTEGER PRIMARY KEY AUTOINCREMENT,_name TEXT,_length INTEGER);
                                                                                 #################################################################
                                                                                 Error Code : 1 (SQLITE_ERROR)
                                                                                 Caused By : SQL(query) error or missing database.
                                                                                    (near "TABLESunday": syntax error (code 1): , while compiling: CREATE TABLESunday(_session INTEGER PRIMARY KEY AUTOINCREMENT,_name TEXT,_length INTEGER);)
                                                                                 #################################################################
                                                                                     at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native …
Run Code Online (Sandbox Code Playgroud)

sqlite android android-sqlite

0
推荐指数
1
解决办法
1万
查看次数

(near "null": syntax error (code 1): ,编译时:INSERT INTO null

我正在尝试将数据保存到数据库中,但似乎没有运行 onCreate 方法。可能这可能是另一个问题,但 logcat

12-01 01:22:41.785 19724-19724/com.example.user.timetable_test E/SQLiteLog: (1) near "null": syntax error
12-01 01:22:41.795 19724-19724/com.example.user.timetable_test E/SQLiteDatabase: Error inserting _length=1 _name=Break
                                                                                 android.database.sqlite.SQLiteException: near "null": syntax error (code 1): , while compiling: INSERT INTO null(_length,_name) VALUES (?,?)
                                                                                 #################################################################
                                                                                 Error Code : 1 (SQLITE_ERROR)
                                                                                 Caused By : SQL(query) error or missing database.
                                                                                    (near "null": syntax error (code 1): , while compiling: INSERT INTO null(_length,_name) VALUES (?,?))
                                                                                 #################################################################
                                                                                     at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
                                                                                     at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1058)
                                                                                     at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:623)
                                                                                     at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
                                                                                     at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:59)
                                                                                     at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
                                                                                     at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1607) …
Run Code Online (Sandbox Code Playgroud)

java sqlite android

0
推荐指数
1
解决办法
1416
查看次数

“安装 sqlite3 (1.3.13) 时出错,Bundler 无法继续”

我正在尝试运行bundle install,但是当我这样做时,我收到一条错误消息,指出“安装 sqlite3 (1.3.13) 时出错,Bundler 无法继续。” 我尝试运行gem install sqlite3 -v '1.3.13',但我也遇到了错误。

这是我的 Gemfile:

source 'https://rubygems.org'

git_source(:github) do |repo_name|
  repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/")
  "https://github.com/#{repo_name}.git"
end


# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 5.1.1'
# Use Puma as the app server
gem 'puma', '~> 3.7'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# See https://github.com/rails/execjs#readme for more supported …
Run Code Online (Sandbox Code Playgroud)

sqlite rubygems ruby-on-rails bundle-install

0
推荐指数
1
解决办法
3626
查看次数

我怎么知道我的 execute 方法是否执行了成功的删除?

我正在研究 ResultProxy 类,它似乎是该execute方法的结果。

我从一个简单的选择开始,然后对结果进行迭代。我很好奇的是更新和删除。我怎么知道删除是否成功?

在 python 中这样做时,我会有类似的东西:

result = session.execute("delete from A where id = 4")
Run Code Online (Sandbox Code Playgroud)

它运行它,但除了尝试查询 id=4 的存在之外,我不知道它是否成功。

当我查看 ResultProxy 类时,我没有看到任何与我相关的内容isSuccessful或任何其他跳出给我的关键字。

就像我说的,通常,我只是遍历选择集,但无法弄清楚这一点。

python sqlite sqlalchemy

0
推荐指数
1
解决办法
1492
查看次数

将数据从一个 sqlalchemy 会话复制到另一个

我有一个包含三个表(A、B 和 C)的 sqlalchemy 模式,通过一对多外键关系(在 A->B 之间)和(B->C)与 SQLite 作为后端相关。我创建了单独的数据库文件来存储数据,每个文件都使用完全相同的 sqlalchemy 模型并运行相同的代码将数据放入其中。

我希望能够从所有这些单独的数据库中复制数据并将它们放入一个新的数据库文件中,同时保留外键关系。我尝试了以下代码将数据从一个文件复制到一个新文件:

import sqlalchemy
from sqlalchemy.ext import declarative
from sqlalchemy import Column, String, Integer
from sqlalchemy import orm, engine

Base = declarative.declarative_base()
Session = orm.session_maker()

class A(Base):
    __tablename__ = 'A'

    a_id = Column(Ingeter, primary_key=True)
    adata = Column(String)
    b = orm.relationship('B', back_populates='a', cascade='all, delete-orphan', passive_deletes=True)


class B(Base):
    __tablename__ = 'B'

    b_id = Column(Ingeter, primary_key=True)
    a_id = Column(Integer, sqlalchemy.ForeignKey('A.a_id', ondelete='SET NULL') 
    bdata = Column(String)
    a = orm.relationship('A', back_populates='b')
    c = orm.relationship('C', back_populates='b', …
Run Code Online (Sandbox Code Playgroud)

python sqlite sqlalchemy

0
推荐指数
1
解决办法
3076
查看次数