diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index c93a5586..6cd35f28 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -27,7 +27,6 @@ jobs: command: test args: > --all - --exclude 'sea-orm-example-*' cli: name: CLI @@ -83,6 +82,18 @@ jobs: --features default,sqlx-${{ matrix.database }},runtime-${{ matrix.runtime }}-${{ matrix.tls }} --no-run + - uses: actions-rs/cargo@v1 + with: + command: build + args: > + --path examples/async-std + + - uses: actions-rs/cargo@v1 + with: + command: build + args: > + --path examples/tokio + sqlite: name: SQLite runs-on: ubuntu-20.04 diff --git a/Cargo.toml b/Cargo.toml index c806196c..ca61c819 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,6 @@ members = [ ".", "sea-orm-macros", "sea-orm-codegen", - "examples/sqlx", ] [package] diff --git a/examples/sqlx/Cargo.toml b/examples/async-std/Cargo.toml similarity index 75% rename from examples/sqlx/Cargo.toml rename to examples/async-std/Cargo.toml index 97d1340f..c2be9d88 100644 --- a/examples/sqlx/Cargo.toml +++ b/examples/async-std/Cargo.toml @@ -1,5 +1,8 @@ +[workspace] +# A separate workspace + [package] -name = "sea-orm-example-sqlx" +name = "sea-orm-example-async-std" version = "0.1.0" edition = "2018" publish = false diff --git a/examples/sqlx/Readme.md b/examples/async-std/Readme.md similarity index 100% rename from examples/sqlx/Readme.md rename to examples/async-std/Readme.md diff --git a/examples/sqlx/bakery.sql b/examples/async-std/bakery.sql similarity index 100% rename from examples/sqlx/bakery.sql rename to examples/async-std/bakery.sql diff --git a/examples/sqlx/import.sh b/examples/async-std/import.sh similarity index 100% rename from examples/sqlx/import.sh rename to examples/async-std/import.sh diff --git a/examples/sqlx/src/entities.rs b/examples/async-std/src/entities.rs similarity index 100% rename from examples/sqlx/src/entities.rs rename to examples/async-std/src/entities.rs diff --git a/examples/sqlx/src/example_cake.rs b/examples/async-std/src/example_cake.rs similarity index 100% rename from examples/sqlx/src/example_cake.rs rename to examples/async-std/src/example_cake.rs diff --git a/examples/sqlx/src/example_cake_filling.rs b/examples/async-std/src/example_cake_filling.rs similarity index 100% rename from examples/sqlx/src/example_cake_filling.rs rename to examples/async-std/src/example_cake_filling.rs diff --git a/examples/sqlx/src/example_filling.rs b/examples/async-std/src/example_filling.rs similarity index 100% rename from examples/sqlx/src/example_filling.rs rename to examples/async-std/src/example_filling.rs diff --git a/examples/sqlx/src/example_fruit.rs b/examples/async-std/src/example_fruit.rs similarity index 100% rename from examples/sqlx/src/example_fruit.rs rename to examples/async-std/src/example_fruit.rs diff --git a/examples/sqlx/src/main.rs b/examples/async-std/src/main.rs similarity index 100% rename from examples/sqlx/src/main.rs rename to examples/async-std/src/main.rs diff --git a/examples/sqlx/src/operation.rs b/examples/async-std/src/operation.rs similarity index 100% rename from examples/sqlx/src/operation.rs rename to examples/async-std/src/operation.rs diff --git a/examples/sqlx/src/select.rs b/examples/async-std/src/select.rs similarity index 100% rename from examples/sqlx/src/select.rs rename to examples/async-std/src/select.rs diff --git a/examples/tokio/Cargo.toml b/examples/tokio/Cargo.toml new file mode 100644 index 00000000..173e9906 --- /dev/null +++ b/examples/tokio/Cargo.toml @@ -0,0 +1,12 @@ +[workspace] +# A separate workspace + +[package] +name = "sea-orm-example-tokio" +version = "0.1.0" +edition = "2018" +publish = false + +[dependencies] +sea-orm = { path = "../../", features = [ "sqlx-all", "runtime-tokio-native-tls" ] } +tokio = { version = "1", features = ["full"] } diff --git a/examples/tokio/src/cake.rs b/examples/tokio/src/cake.rs new file mode 100644 index 00000000..0b1a4439 --- /dev/null +++ b/examples/tokio/src/cake.rs @@ -0,0 +1,55 @@ +use sea_orm::entity::prelude::*; + +#[derive(Copy, Clone, Default, Debug, DeriveEntity)] +pub struct Entity; + +impl EntityName for Entity { + fn table_name(&self) -> &str { + "cake" + } +} + +#[derive(Clone, Debug, PartialEq, DeriveModel, DeriveActiveModel)] +pub struct Model { + pub id: i32, + pub name: String, +} + +#[derive(Copy, Clone, Debug, EnumIter, DeriveColumn)] +pub enum Column { + Id, + Name, +} + +#[derive(Copy, Clone, Debug, EnumIter, DerivePrimaryKey)] +pub enum PrimaryKey { + Id, +} + +impl PrimaryKeyTrait for PrimaryKey { + fn auto_increment() -> bool { + true + } +} + +#[derive(Copy, Clone, Debug, EnumIter)] +pub enum Relation {} + +impl ColumnTrait for Column { + type EntityName = Entity; + + fn def(&self) -> ColumnDef { + match self { + Self::Id => ColumnType::Integer.def(), + Self::Name => ColumnType::String(None).def(), + } + } +} + +impl RelationTrait for Relation { + fn def(&self) -> RelationDef { + unreachable!() + } +} + +impl ActiveModelBehavior for ActiveModel {} diff --git a/examples/tokio/src/main.rs b/examples/tokio/src/main.rs new file mode 100644 index 00000000..dd81b4ab --- /dev/null +++ b/examples/tokio/src/main.rs @@ -0,0 +1,14 @@ +mod cake; +use sea_orm::*; + +#[tokio::main] +pub async fn main() { + let db = Database::connect("sql://sea:sea@localhost/bakery") + .await + .unwrap(); + + tokio::spawn(async move { + cake::Entity::find().one(&db).await.unwrap(); + }) + .await.unwrap(); +} \ No newline at end of file diff --git a/sea-orm-cli/Cargo.toml b/sea-orm-cli/Cargo.toml index f66353e8..7c9ec510 100644 --- a/sea-orm-cli/Cargo.toml +++ b/sea-orm-cli/Cargo.toml @@ -1,5 +1,5 @@ [workspace] -# A separate workspace for sea-orm-cli +# A separate workspace [package] name = "sea-orm-cli"