Delete mysql extra

This commit is contained in:
Simon Binder 2021-05-21 10:48:29 +02:00
parent 29bb6a73c8
commit d220892f64
5 changed files with 0 additions and 176 deletions

View File

@ -1,11 +0,0 @@
# Files and directories created by pub
.dart_tool/
.packages
# Remove the following pattern if you wish to check in your lock file
pubspec.lock
# Conventional directory for build outputs
build/
# Directory created by dartdoc
doc/api/

View File

@ -1,26 +0,0 @@
Experimental support for using Moor with an MySQL server.
## Using this
For general notes on using moor, see [this guide](https://moor.simonbinder.eu/getting-started/).
To use the MySQL backend, also add this to your pubspec (you don't need to depend on
`moor_flutter`).
```yaml
dependencies:
moor: "$latest version"
moor_mysql:
git:
url: https://github.com/simolus3/moor.git
path: extras/mysql
```
Then, instead of using a `FlutterQueryExecutor`, use a `MySqlBackend` with the
right [`ConnectionSettings`](https://pub.dev/documentation/sqljocky5/latest/connection_settings/ConnectionSettings-class.html).
You'll need to import `package:moor_mysql/moor_mysql.dart`.
## Limitations
We're currently experimenting with other database engines - Moor was mainly designed for
sqlite and supporting advanced features of MySQL is not a priority right now.
- No migrations - you'll need to create your tables manually
- Some statements don't work
- Compiled custom queries don't work - we can only parse sqlite. Of course, runtime custom
queries with `customSelect` and `customUpdate` will work as expected.

View File

@ -1,21 +0,0 @@
version: "3.7"
services:
database:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: example
ports:
- "3306:3306"
phpmyadmin:
depends_on:
- database
image: phpmyadmin/phpmyadmin
ports:
- "8080:80"
environment:
PMA_HOST: database
PMA_USER: root
PMA_PASSWORD: password
PMA_PORT: 3306

View File

@ -1,100 +0,0 @@
/// Experimental support to run moor on a mysql backend.
library moor_mysql;
import 'package:moor/backends.dart';
import 'package:moor/moor.dart';
import 'package:sqljocky5/connection/connection.dart';
import 'package:sqljocky5/sqljocky.dart';
export 'package:sqljocky5/sqljocky.dart' show ConnectionSettings;
class MySqlBackend extends DelegatedDatabase {
MySqlBackend(ConnectionSettings settings)
: super(_MySqlDelegate(settings), logStatements: true);
}
mixin _MySqlExecutor on QueryDelegate {
Querier get _querier;
@override
Future<void> runCustom(String statement, List args) async {
await _querier.prepared(statement, args);
}
@override
Future<int> runInsert(String statement, List args) async {
final result = await _querier.prepared(statement, args);
return result.insertId;
}
@override
Future<QueryResult> runSelect(String statement, List args) async {
final result = await _querier.prepared(statement, args);
final columns = [for (var field in result.fields) field.name];
final rows = result.toList();
return QueryResult(columns, rows);
}
@override
Future<int> runUpdate(String statement, List args) async {
final result = await _querier.prepared(statement, args);
return result.affectedRows;
}
}
class _MySqlDelegate extends DatabaseDelegate with _MySqlExecutor {
final ConnectionSettings _settings;
MySqlConnection _connection;
_MySqlDelegate(this._settings);
@override
bool get isOpen => _connection != null;
@override
Querier get _querier => _connection;
@override
final DbVersionDelegate versionDelegate = const NoVersionDelegate();
@override
TransactionDelegate get transactionDelegate => _TransactionOpener(this);
@override
SqlDialect get dialect => SqlDialect.mysql;
@override
Future<void> open(_) async {
_connection = await MySqlConnection.connect(_settings);
}
@override
Future<void> close() async {
await _connection.close();
}
}
class _TransactionOpener extends SupportedTransactionDelegate {
final _MySqlDelegate _delegate;
_TransactionOpener(this._delegate);
@override
void startTransaction(Future Function(QueryDelegate) run) {
_delegate._connection.transaction((transaction) async {
final executor = _TransactionExecutor(transaction);
await run(executor);
});
}
}
class _TransactionExecutor extends QueryDelegate with _MySqlExecutor {
@override
final Querier _querier;
_TransactionExecutor(this._querier);
}

View File

@ -1,18 +0,0 @@
name: moor_mysql
description: MySQL support for moor
version: 1.0.0
author: Simon Binder <oss@simonbinder.eu>
environment:
sdk: '>=2.4.0 <3.0.0'
dependencies:
moor: ^2.0.0
sqljocky5: ^2.2.0
dev_dependencies:
test: ^1.6.0
dependency_overrides:
moor:
path: ../../moor